public static void main(String args[]) {
版String str = "12&32&位置&yutye";
System.out.println("&在字符串中出现的权位置分别为:");
for(int i=-1; i<=str.lastIndexOf("&");++i)
{
i=str.indexOf("&",i);
System.out.print(i+"\t");
}
}
你需要看看源码
public int indexOf(String str, int fromIndex) {
return indexOf(value, 0, value.length,
str.value, 0, str.value.length, fromIndex);
}
第二个参数是字符串的起始位置。如果起始位置之后,并没有需要的str字符,那么i会被重新赋值-1,然后再判断for的条件,从而进入死循环。
str.lastIndexOf("&");
当str里面没有&的时候,这个永远返回-1,造成条件永远成立死循环。