Я остановился на следующем коде для подсчета появления символа в строке:
public static void main(String[] args) {
String source = "hello low how ale you";
Scanner in = new Scanner(System.in);
String temp = in.nextLine();
char test = temp.toCharArray()[0];
int fromIndex = 0;
int occurences =0;
while(fromIndex>-1)
{
fromIndex = source.indexOf(test, fromIndex);
System.out.println("found at"+fromIndex);
//if(fromIndex!=-1) occurences++;
}
System.out.println(occurences);
}
Цикл выполняется бесконечно, если закомментирована строка if (fromIndex! = - 1)!
Цикл правильно завершается, если та же строка не закомментирована.
Странно наблюдать, что завершение цикла зависит от переменной fromIndex
, а не от обновления переменной occurences
, которая обновляется внутри блока If.
Есть предположения, почему это происходит?