CodingBat maxBlock解决方案中的StringIndexOutOfBoundsException

时间:2016-05-01 12:42:46

标签: java

  1. 我是新来的,所以请不要火焰。

  2. 我知道我可以在网上找到解决方案,但我确实无法理解我的代码中StringIndexOutOfBoundsException错误是如何发生的。

  3. 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

1 个答案:

答案 0 :(得分:0)

i达到最终值时,for循环中的最后一次迭代发生错误,因为str.charAt(j)无法到达StringIndexOutOfBoundsException,因为j是{{ 1}}

简单地说,当它到达第一个i + 1循环中的最后一个字符时,当您使用for

时,它无法在索引j找到该字符