Задача
Дана строка. Напишите программу, которая удалит из этой строки все лишние пробелы.
Пробел является лишним, если выполняется хотя бы 1 из условий:
- он находится в самом начале строки, до самого первого слова;
- он находится в конце строки, после самого последнего слова;
- несколько пробелов расположены между двумя словами (проще говоря, если слова разделены более чем одним пробелом, тогда все пробелы кроме одного — лишние).
Входные данные
Дана строка s. Строка содержит только латинские буквы и пробелы.
Выходные данные
Строка без лишних пробелов.
Тесты
№ | Входные данные | Выходные данные |
1 | «Alexandr Sergeevich Pushkin» | «Alexandr Sergeevich Pushkin» |
2 | «JohnSnow» | «JohnSnow» |
3 | » Mr Charlie Chaplin » | «Mr Charlie Chaplin» |
4 | «Mechnikov University» | «Mechnikov University» |
5 | «Daenerys Targaryen» | «Daenerys Targaryen» |
Код
Ссылка на ideone.
Ссылка на e-olymp.
Решение
Вводим строку s, которая содержит латинские буквы и пробелы. Используем метод replaceAll() для удаления лишних пробелов. Чтоб не удалить последний оставшийся пробел используем regex " +", " " . «Прочитать» его по-русски можно так: " +" — выделить 1 или больше пробелов до символа, не являющимся пробелом и " " — заменить выделенную последовательность на 1 пробел. Проверяем символы на концах строки на наличие пробела. Перезаписываем подстроку без пробелов в строку s.
Затем выводим полученную строку.