我是新来的,所以请不要火焰。
我知道我可以在网上找到解决方案,但我确实无法理解我的代码中StringIndexOutOfBoundsException
错误是如何发生的。
public int maxBlock(String str) {
int max = 0;
for(int i = 0; i < str.length() - 1; i++){
int c1 = 0;
for(int j = i + 1; i < str.length(); j++){
if(str.charAt(i) == str.charAt(j) && j - i == 1)
c1++;
}
if(c1 > max)
max = c1;
}
return max;
}
编辑:已解决:D
答案 0 :(得分:0)
当i
达到最终值时,for循环中的最后一次迭代发生错误,因为str.charAt(j)
无法到达StringIndexOutOfBoundsException
,因为j
是{{ 1}}
简单地说,当它到达第一个i + 1
循环中的最后一个字符时,当您使用for
j
找到该字符