2 回答

TA貢獻1785條經驗 獲得超4個贊
如果你會調試,一下就明白了,或者每次把s給打印出來也一目了然
首先,你找到第一個java,接著截除了前4個字符,得到的s
hahajavvahahajavajavajajajavajavagoodjava
接著下一個s變成了
javvahahajavajavajajajavajavagoodjava
看出來了吧,你只是把haha給截掉了,其實你應該截去hahajavvahahajava
這個就是你的問題所在,你每次應該截去java所在的位置+4
一個小修改:
s = s.substring(s.indexOf(find) + find.length());
其實用s.indexOf(find, index)這個函數會更方便點,index表示從哪個位置開始找

TA貢獻1869條經驗 獲得超4個贊
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
String s = "javahahajavvahahajavajavajajajavajavagoodjava";
int i = 0;
int count = 0;
String find = "java";
while (s.indexOf(find) != -1) {
count++;
System.out.println(s);
s = s.substring(i + find.length());
}
System.out.println(count);
}
}
在while循環里 加上打印 那句話 打出結果來就明白了!
添加回答
舉報