Как убрать пробелы в начале и конце строки
Короткий ответ
Метод strip() убирает пробелы, табуляции и переводы строк по краям:
void main() {
String input = " Anna \n";
IO.println("[" + input.strip() + "]");
}Результат:
[Anna]Только с одной стороны
stripLeading() убирает пробелы в начале, stripTrailing() — в конце:
void main() {
String text = " hi ";
IO.println("[" + text.stripLeading() + "]");
IO.println("[" + text.stripTrailing() + "]");
}Результат:
[hi ]
[ hi]strip или trim
Старый trim() убирает только символы с кодом до 32 и не знает про пробелы Unicode, например неразрывный пробел из Word или HTML. strip() их понимает:
void main() {
String text = " price ";
IO.println("[" + text.trim() + "]");
IO.println("[" + text.strip() + "]");
}Результат:
[ price ]
[price]Пробелы внутри строки
Лишние пробелы между словами сожмите регулярным выражением:
void main() {
String text = " too many spaces ";
IO.println(text.strip().replaceAll("\\s+", " "));
}Результат:
too many spacesЧастая ошибка
Вызвать strip() и не сохранить результат. Метод не меняет строку, а возвращает новую:
void main() {
String name = " Oleg ";
name.strip();
IO.println("[" + name + "]");
}Результат:
[ Oleg ]Функции из этого ответа
- String.strip() — Удаляет любые пробельные символы Unicode в начале и в конце строки.
- String.trim() — Удаляет пробелы и управляющие символы в начале и в конце строки.
- String.isBlank() — Проверяет, что строка пустая или состоит только из пробелов.
- String.replaceAll() — Заменяет все совпадения регулярного выражения.