为什么以下算法对我来说不停止?
(str是我要搜索的字符串,findStr是我要寻找的字符串)
String str = "helloslkhellodjladfjhello";
String findStr = "hello";
int lastIndex = 0;
int count = 0;
while (lastIndex != -1) {
lastIndex = str.indexOf(findStr,lastIndex);
if( lastIndex != -1)
count++;
lastIndex += findStr.length();
}
System.out.println(count);
最佳答案
最后一行造成了问题。 lastIndex
永远不会为-1,因此将存在无限循环。可以通过将最后一行代码移到if块中来解决此问题。
String str = "helloslkhellodjladfjhello";
String findStr = "hello";
int lastIndex = 0;
int count = 0;
while(lastIndex != -1){
lastIndex = str.indexOf(findStr,lastIndex);
if(lastIndex != -1){
count ++;
lastIndex += findStr.length();
}
}
System.out.println(count);
关于java - 字符串中子字符串的出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/767759/