e-olymp 2165. Лишние пробелы

Задача

Дана строка. Напишите программу, которая удалит из этой строки все лишние пробелы.
Пробел является лишним, если выполняется хотя бы 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.

Затем выводим полученную строку.