2013-07-06 4 views
-1

Я пытаюсь сделать программу, когда всякий раз, когда будет найден символ (для проверки «a»), он печатает его и перебирается к следующему символу для проверки. Продолжает делать это до конца слова.length. Это то, что я сделал до сих пор, но не работает,Как найти номер номера определенного символа в слове?

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    System.out.print("Enter a word: "); 
    String word = in.next(); 
    String a = "a"; 
    int i; 
    char found = 0; 
    char F; 

    for (i = 0; i < word.length(); i++) 
    { 
     F = word.charAt(i); 

     if (F == found) 
     { 
      System.out.println(i); 
     } 

    } 


} 
+0

Как это не работает? Какой результат вы получаете? –

+1

Вы сравниваете с 'found' вместо' a' ... – Aquillo

+0

для не отладки себя – qwr

ответ

1

Попробуйте

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    System.out.print("Enter a word: "); 
    String word = in.next();   
    char F; 

    for (int i = 0; i < word.length(); i++) { 
     F = word.charAt(i); 
     if (F == 'a') { 
      System.out.println(i); 
     } 
    } 
} 
0

использовать этот один простой

string.indexOf("a"); 
+0

Спасибо за сообщение, но где его заменить? –

1

Попробуйте с

 Scanner in = new Scanner(System.in); 
     System.out.print("Enter a word: "); 
     String word = in.next(); 
     Pattern p=Pattern.compile("a"); 
     Matcher matcher=p.matcher(word); 
     boolean b=false; 
     while(b=matcher.find()) 
     { 
      System.out.println(matcher.start()+""); 
     } 

Edit:

Pattern.compile ("а");

Compiles the given regular expression into a pattern 

p.matcher (слово);

Creates a matcher that will match the given input against this pattern. 

Если вы хотите найти исходную строку как aba то для всех случаев выражения a, он будет делать, как

source:aba 
index:012 

мы можем увидеть два вхождений выражения в: один старт из положения 0 и второй, начиная с 2. поэтому выход 0 2

+0

Спасибо за сообщение. Это не сработало, но для меня это выглядит так сложно. Я еще не узнал о моделях и матчи. –

+1

Вам не кажется, что введение регулярного выражения для этой проблемы, особенно когда OP изучает основы программирования, является OverKill ?? –

+1

@AlexJj это нормально. Я отредактировал ответ, чтобы объяснить вам. поэтому вы можете достичь такой же функции с помощью регулярного выражения. Поскольку ваша проблема с условием 'if' так изменится с условием' if (F == 'a') '. – iMBMT

Смежные вопросы