日期:2014-05-20  浏览次数:20721 次

Java 出现死循环,不知道哪里错了?
	public static void main(String [] args)
{
String i = "Hello world Hello";
String test = "Hello";

int count = 0;
int index = 0;
do
{
count ++;
index = i.indexOf(test); //在i中搜索Hello字符
index += test.length(); // 获得下一个开始索引
index = i.indexOf(test, index); //在指定索引处继续往后搜索

}while(index!=-1); //index不等于-1时继续执行上述代码查找字符。
System.out.println(count);
}


我的原意是编写一个程序,这个程序计算字符串中Hello字符出现的次数,可是陷入了死循环,怎么都看不出到底是哪里导致的,而且我点击编译运行,机器变得异常的卡,机器配置本来就不高,请看出哪里错误的朋友指出,谢谢~。

------解决方案--------------------
针对你的代码可以将count++下面的一行改成 index=i.indexOf(test,index);
楼主可以考虑这个代码
	public static void main(String [] args){    
String i = "Hello world Hello Hello Hello";    
String test = "Hello";         
int count = -1;    
int index = 0;    
do {        
count ++; 
index = i.indexOf(test); 
i = i.substring(index+1);
}while(index!=-1); //index不等于-1时继续执行上述代码查找字符。   
System.out.println(count);
}