StringIndexOutOfBoundsException в решении для CodingBat maxBlock

  1. Я новичок здесь, так что не пламя, пожалуйста.

  2. Я знаю, что могу просто найти решения в интернете, и я это сделал, но я просто не могу понять, как 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;
}

Edit: Resolved 😀

1 ответ

  1. Ошибка возникает на последней итерации в цикле for при iдостижении конечного значения, поскольку str.charAt(j)не может быть достигнута ( StringIndexOutOfBoundsException) какj i + 1

    Проще говоря, когда он достигает последнего символа в первом forцикле, он не может найти символ в индексе jпри использовании str.charAt(j)