2 回答

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

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
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循環(huán)里 加上打印 那句話(huà) 打出結(jié)果來(lái)就明白了!
添加回答
舉報(bào)