суть задачи такая, это условия a. Если в тексте между словами присутствует несколько пробелов подряд, надо оставить только один из них. Для реализации этого подпункта нельзя пользоваться методами replace() и replaceAll(). b. Если в тексте присутствует знак минус (-), это значит, что символ слева от этого знака надо поменять местами с символом, который стоит справа от этого знака. Обратите внимание, что символом может быть не только буква, но и цифра или любой другой знак/символ, в том числе символ пробела. После смены символов местами, знак минус (-) надо удалить из строки результата. c. Если в тексте присутствует знак плюс (+), вам необходимо заменить его на восклицательный знак (!). d. В тексте могут присутствовать цифры (от 0 до 9). Вам необходимо посчитать их сумму и удалить из текста. Сумму цифр вам нужно добавить в конец результирующей строки через пробел (пробел должен стоять перед суммой цифр). Если цифр в тексте не было - "0" (ноль) в конце строки выводить не нужно. ошибка в коде следующая Введите текст: Я-б к-2 р3! Измененный текст: ЯбЯ кк р! 5 неправильная обработка должно быть так бЯ к р! 5 тоесть получается так что он у меня копирует левый символ за место того чтобы его просто перенести, подскажите как исправить?
import java.util.Scanner;

public class TextModifier {

    public static void main(String[] args) {
    textModifier();
}

        public static void textModifier() {
            Scanner scanner = new Scanner(System.in);
            System.out.println(" Введите текст: ");
            String text = scanner.nextLine();

            // Удаление лишних пробелов в тексте
            StringBuilder modifiedText = new StringBuilder();
            boolean spaceDetected = false;
            for (int i = 0; i < text.length(); i++) {
                if (text.charAt(i) == ' ') {
                    if (!spaceDetected) {
                        modifiedText.append(text.charAt(i));
                    }
                    spaceDetected = true;
                } else {
                    modifiedText.append(text.charAt(i));
                    spaceDetected = false;
                }
            }

            // Замена нами символов вокруг знака "-"
            StringBuilder swappedText = new StringBuilder();
            for (int i = 0; i < modifiedText.length(); i++) {
                if (modifiedText.charAt(i) == '-') {
                    swappedText.append(modifiedText.charAt(i + 1));
                    swappedText.append(modifiedText.charAt(i - 1));
                    i++;
                } else {
                    swappedText.append(modifiedText.charAt(i));
                }
            }

            // Заменим "+" на "!"
            String replacedText = swappedText.toString().replace('+', '!');

            // Вычисление суммы цифр и их удаление
            int sum = 0;
            String finalText = "";
            for (int i = 0; i < replacedText.length(); i++) {
                char c = replacedText.charAt(i);
                if (Character.isDigit(c)) {
                    sum += Character.getNumericValue(c);
                } else {
                    finalText += c;
                }
            }
            finalText += " " + sum;

            System.out.println(" Измененный текст: " + finalText);

            scanner.close();
        }
}