• Почему возникает ошибка: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: Index -1 out of bounds for length 3?

    ZooMMaX
    @ZooMMaX
    Я так понимаю, что вы хотели печатать введённый текст наоборот.
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String slovo = sc.nextLine();
            int b = slovo.length() - 1; // Начинаем с последнего символа
            while (b >= 0) { // Идём до начала строки
                char a = slovo.charAt(b);
                System.out.print(a);
                b--;
            }
            sc.close(); // Закрываем сканер после завершения
        }
    }


    test = tset

    Я так же поубирал лишние переменные, коих у Вас есть)

    В Вашем случае boolean y
    Не обновлялась от итерации к итерации. Вы так же использовали бесконечный цикл
    while(true)
    в котором производили вычитание b и получение символа по значению в переменной. У Java в строке по определению не может быть -1 символ, а бесконечный цикл доходит до того, что у Вас b становится равна -1. Вот тут вы и получали ошибку.

    Правльный логический подход - сделать цикл с условием завершения (когда b < 0, завершить).
    Ответ написан
    2 комментария