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");
}
}
请指教,将i=str.indexOf("&",i);中的&换成其他字符,比如3时,为什么会进入死循环。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- DK_ing 2020-05-09 09:20关注
你需要看看源码
public int indexOf(String str, int fromIndex) { return indexOf(value, 0, value.length, str.value, 0, str.value.length, fromIndex); }
第二个参数是字符串的起始位置。如果起始位置之后,并没有需要的str字符,那么i会被重新赋值-1,然后再判断for的条件,从而进入死循环。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报