Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как удалить все пробелы из строки

Короткий ответ

Регулярное выражение \\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 в начале и в конце строки.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.