Почему возникает ошибка StringIndexOutOfBoundsException с индексом -1 для строки длиной 3?

Как можно исправить ошибку в данном фрагменте кода на Java, связанную с итерацией по строке в обратном порядке и выводом символов?
  • 8 июля 2024 г. 19:02
Ответы на вопрос 2
Ошибка `StringIndexOutOfBoundsException` возникает, когда пытаемся обратиться к символу строки по индексу, который выходит за границы допустимого диапазона индексов. В Java индексы символов строки начинаются с 0, то есть для строки длиной 3 допустимые индексы от 0 до 2.

Для исправления ошибки в коде нужно изменить цикл итерации по строке так, чтобы он начинался с последнего символа строки и заканчивался первым:

```java
String str = "abc";
for(int i = str.length() - 1; i >= 0; i--) {
    System.out.print(str.charAt(i));
}
```

Этот код выведет символы строки в обратном порядке: `cba`. Теперь не будет ошибки `StringIndexOutOfBoundsException`, так как индексы будут находиться в допустимом диапазоне.
Потому что у вас в бесконечном цикле b стремится к -бесконечности, следовательно тут: char a = slovo.charAt(b); возникает ошибка, когда b достигает значения -1
Похожие вопросы