Сделать reverse строки с сохранением множественных пробельных символов на своих местах используя StringJoiner
Метод должен переворачивать каждое слово в строке и включать сохранение длины входной строки "abc " -> "cba "). Если между словами и в конце есть пробелы, они должны сохранится на своих местах.
public String reverseString(String string) {
StringBuilder stringBuilder = new StringBuilder();
for (String word : string.split(" ")) {
stringBuilder.append(reverseWord(word)).append(" ");
}
return stringBuilder.toString().trim();
}
Здесь метод trim() не подходит, так как убирает все пробелы в конце. Нужно реализовать с использованием класа StringJoiner. Кто знает, помогите , пожалуйста.
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Думаю что-то такое
public static void main(String[] args) {
String original = " abc ";
StringBuilder sb = new StringBuilder(original.trim());
String updated = original.replace(original.trim(), sb.reverse().toString());
System.out.println(new StringJoiner("", "[", "]").add(original));
System.out.println(new StringJoiner("", "[", "]").add(updated));
}
или если каждое слово
public static void main(String[] args) {
String original = " abc 123654 ";
String reversed =
List.of(original.trim().split(" ")).stream()
.map(word -> new StringBuilder(word).reverse().toString())
.collect(Collectors.joining(" "));
String updated = original.replace(original.trim(), reversed);
System.out.println(new StringJoiner("", "[", "]").add(original));
System.out.println(new StringJoiner("", "[", "]").add(updated));
}
в методы сами переведёте если есть необходимость