学习java的String类的遇到的小问题,
想编写一个计算字符串 s1= "sunjavahpjavaokjavajjavahahajavajavagoodjava"里面包含字符串"java"的个数。
public class Test5 {
public static void main(String[] args) {
String s1 = "sunjavahpjavaokjavajjavahahajavajavagoodjava";
int count = 0;
for(int i=s1.indexOf("java"); i!=-1; ) {
s1 = s1.replaceFirst("java", "sun");
count++;
}
System.out.println(count);
}
}
上面程序编译通过,,但是运行时死循环,,出不来。。
于是又编写了下面程序,一切正常,编译通过,,运行通过。。
public class Test6 {
public static void main(String[] args) {
String s1 = "sunjavahpjavaokjavajjavahahajavajavagoodjava";
int count = 0;
while(s1.contains("java")) {
s1 = s1.replaceFirst("java", "sun");
count++;
}
System.out.println(count);
//System.out.println(s1);
}
}
运行正常,结果为: 7
想问下各位师傅,我的第一个小程序Test5,为什么会死循环的??不胜感激。