Как удалить все пробелы из строки
Короткий ответ
Регулярное выражение \\s находит любой пробельный символ — его можно заменить пустой строкой:
void main() {
String card = " 4000 1234\t5678 9010\n";
IO.println(card.replaceAll("\\s", ""));
}Результат:
4000123456789010Только обычные пробелы
Если нужно убрать только символ пробела, регулярное выражение не нужно — хватит replace():
void main() {
IO.println("1 000 000".replace(" ", ""));
}Результат:
1000000Пробелы Unicode
\\s не находит неразрывный пробел , который часто приходит из HTML и таблиц. Используйте класс \\p{Z} вместе с \\s:
void main() {
String price = "1 250 €";
IO.println(price.replaceAll("\\s", ""));
IO.println(price.replaceAll("[\\s\\p{Z}]", ""));
}Результат:
1 250€
1250€Частая ошибка
Передать в replace() регулярное выражение. replace() ищет текст буквально, поэтому "\\s" в нём ничего не найдёт:
void main() {
IO.println("a b c".replace("\\s", ""));
IO.println("a b c".replaceAll("\\s", ""));
}Результат:
a b c
abcФункции из этого ответа
- String.replaceAll() — Заменяет все совпадения регулярного выражения.
- String.replace() — Заменяет все вхождения подстроки или символа на другую строку.
- String.strip() — Удаляет любые пробельные символы Unicode в начале и в конце строки.