Задача
Дана строка. Напишите программу, которая удалит из этой строки все лишние пробелы.
Пробел является лишним, если выполняется хотя бы 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» |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import java.util.*; import java.lang.*; import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String s = in.nextLine(); s = s.replaceAll(" +", " "); if(s.charAt(0) == ' ') { s = s.substring(1, s.length()); } if(s.charAt(s.length()-1) == ' ') { s = s.substring(0, s.length()-1); } System.out.print(s); } } |
Ссылка на ideone.
Ссылка на e-olymp.
Решение
Вводим строку s, которая содержит латинские буквы и пробелы. Используем метод replaceAll() для удаления лишних пробелов. Чтоб не удалить последний оставшийся пробел используем regex " +", " " . «Прочитать» его по-русски можно так: " +" — выделить 1 или больше пробелов до символа, не являющимся пробелом и " " — заменить выделенную последовательность на 1 пробел. Проверяем символы на концах строки на наличие пробела. Перезаписываем подстроку без пробелов в строку s.
Затем выводим полученную строку.