Чтобы перевернуть заданную строку, сохраняя положение пробелов, можно использовать следующий алгоритм:
- Преобразуйте строку в массив слов с помощью метода split().
- Отразите каждое слово в массиве.
- Объедините отраженные слова и добавьте между ними пробелы.
Вот пример кода на Java, который реализует такой алгоритм:
public static String reverseWords(String str) {
String[] words = str.split("\\s"); // разбиваем строку на массив слов StringBuilder sb = new StringBuilder();
for (String word : words) {
sb.append(new StringBuilder(word).reverse().toString()).append(" ");
// отражаем каждое слово и добавляем его с пробелом к результирующей строке }
return sb.toString().trim(); // удаляем последний пробел из результата }
В этом примере мы сначала используем метод split("\s"), чтобы разбить исходную строку на массив слов.
Затем мы проходим по каждому слову в массиве и используем метод reverse() класса StringBuilder для его отражения. Мы добавляем отраженное слово с пробелом к объекту типа StringBuilder, который содержит все отраженные слова.
Наконец, мы удаляем последний пробел из результирующей строки, используя метод trim(), и возвращаем результат.
Заметьте, что данная реализация сохраняет только пробелы, а не другие символы разделения, такие как запятые или точки с запятой.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov