


Помогите разобраться с кодом Java (только адекватные ответы)
Для начала опишу суть проблемы и цель кода.
Задача: реализовать метод textModifier, который считывает из консоли текст, введённый пользователем и меняет его согласно описанному алгоритму.
public static String textModifier() // этот метод надо реализовать
Результатом работы метода является возврат строки (текста) с учётом всех изменений.
Результатом работы программы является вывод в консоль изменённого текста согласно всем условиям:
1. Пользователь вводит текст одной строкой и нажимает “enter”.
2. В тексте могут присутствовать различные специальные символы, которые надо обрабатывать согласно условиям ниже:
a. Если в тексте между словами присутствует несколько пробелов подряд, надо оставить только один из них. Для реализации этого подпункта нельзя пользоваться методами replace() и replaceAll().
b. Если в тексте присутствует знак минус (-), это значит, что символ слева от этого знака надо поменять местами с символом, который стоит справа от этого знака. Обратите внимание, что символом может быть не только буква, но и цифра или любой другой знак/символ, в том числе символ пробела. После смены символов местами, знак минус (-) надо удалить из строки результата.
c. Если в тексте присутствует знак плюс (+), вам необходимо заменить его на восклицательный знак (!).
d. В тексте могут присутствовать цифры (от 0 до 9). Вам необходимо посчитать их сумму и удалить из текста. Сумму цифр вам нужно добавить в конец результирующей строки через пробел (пробел должен стоять перед суммой цифр). Если цифр в тексте не было - "0" (ноль) в конце строки выводить не нужно.
Все манипуляции с текстом должны выполняться ровно в той последовательности, которая описана в пункте 2. То есть, сначала выполняется пункт A, затем пункт B, затем C и D. Это важно для получения корректного итогового результата.
суть проблемы: основная проблема заключена в моем методе "minusremove".
метод делает все логично, но при выводе выдает ошибки.
вот примеры ввода и вывода
Пимер ввода:
генрих1 играет+2 л-июбит0школу
Пример вывода:
генрих играет! илюбитшколу 3
вывод моего кода: генрих играет! лилюбитшколу 3
Пример ввода №2:
Я ю-лбю-л джаву всем сердцем+
Пример вывода:
Я люблю джаву всем сердцем!
вывод моего кода: Я юлюбюлю джаву всем сердцем!
Если кто шарит, то буду благодарен за помощь, ответ желательно написать с пояснением. Заранее спасибо )
весь код сюда не влезет, поэтому оставлю ссылку на пастбин: https://pastebin.com/iPz9nNtM
Зачем тебе полный код, если проблема только с одной функцией
public class MinusRemove {
public static String minusremove(String input) {
StringBuilder result = new StringBuilder(input);
int index;
while ((index = result.indexOf("-")) != -1 && index > 0 && index < result.length() - 1) {
char left = result.charAt(index - 1);
char right = result.charAt(index + 1);
result.setCharAt(index - 1, right);
result.setCharAt(index + 1, left);
result.deleteCharAt(index);
}
return result.toString();
}
public static void main(String[] args) {
System.out.println(minusremove("р-пограммирование")); // программирование
System.out.println(minusremove("ab-cd")); // acbd
System.out.println(minusremove("123-456")); // 124356
System.out.println(minusremove("a-b-c-d")); // bacd
}
}
ну так ты у нейронки которая тебе всё там рисовала и спроси чтобы разжевала...
учить же джаву ты ни разу не собиралась...