Научитесь менять местами слова в строке Java так, чтобы каждое слово оставалось в своем порядке, а символы в словах менялись местами, используя Java 8 Stream API и классы StringUtils.
Оригинальная строка – «Алекс Брайан Чарльз»
Перевернутые слова – «xela nairb selrahc»
1. Использование Stream и StringBuilder
Алгоритм переворачивания каждого слова прост:
- Токенизируйте строку с помощью метода String.split().
- Пройдитесь по массиву строк с помощью Stream и используйте метод StringBuilder.reverse(), чтобы перевернуть каждое слово.
- Объедините все перевернутые слова, объединив элементы Stream.
String input = "alex brian charles";String reversed = Arrays.stream(input.split(" ")).map(word -> new StringBuilder(word).reverse()).collect(Collectors.joining(" "));System.out.println(reversed);
Вывод программы.
xela nairb selrahc
2. Использование StringUtils
Класс StringUtils из библиотеки Apache command lang3. Его API reverseDelimited() переворачивает каждое слово и объединяет строку обратно с тем же разделителем. В нашем случае мы будем использовать пробел в качестве разделителя.
String input = "alex brian charles";String reversed = StringUtils.reverseDelimited(StringUtils.reverse(input), ' ');System.out.println(reversed);
Вывод программы.
xela nairb selrahc
В этом посте мы научились переставлять слова в предложении на Java.