Почему мой код Java для поиска нескольких вхождений Sting в другую строку не работает?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему мой код Java для поиска нескольких вхождений Sting в другую строку не работает?

Сообщение Anonymous »

Я попытался написать фрагмент Java-кода, чтобы проверить, есть ли несколько вхождений подстроки в другую строку, поэтому, если подстрока встречается в строке более одного раза, метод должен возвращать true, в противном случае он должен вернуть false. Он работал нормально, когда подстрока вообще не присутствовала в строке, но возвращал true, когда подстрока присутствовала, но не встречалась более одного раза, чего не должно было случиться. Ниже приведен метод:

Код: Выделить всё

public boolean twoOccurrencesMethod(String a, String b){
int fromIndex = 0;
int count = 0;
int Index = b.indexOf(a, fromIndex);

while((Index) != -1){
count++;
fromIndex = Index + 1;

if (count > 1){
return true;
}
}
return false;
}
Я ожидал, что метод вернет false, если подстрока встречается в строке не более одного раза.
Но, немного повозившись, я пришел к приведенному ниже методу, который работает. отлично.

Код: Выделить всё

public boolean twoOccurrencesMethod(String a, String b){
int fromIndex = 0;
int count = 0;
int Index;

while((Index = b.indexOf(a, fromIndex)) != -1){
count++;
fromIndex = Index + 1;

if (count > 1){
return true;
}
}
return false;
}
Почему именно инициализация переменной Index в условии цикла while работает, а не инициализация ее перед циклом while, как в первом методе?

Подробнее здесь: https://stackoverflow.com/questions/790 ... other-stri
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»