Главная страница » Как удалить все пробелы в строке java

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

  • автор:

Удалить пробел из строки в Java

В этом посте будет обсуждаться, как удалить пробелы из строки в Java.

Символ называется пробельным символом в Java тогда и только тогда, когда Character.isWhitespace(char) метод возвращает истину. Наиболее часто используемые пробельные символы: \n, \t, \r и пространство. Шаблон регулярного выражения для пробельных символов: \s . Используя этот шаблон в регулярном выражении, мы можем либо заменить последовательные пробелы одним пробелом, либо удалить все пробелы из входной строки.

1. Замена последовательных пробелов одним пробелом

Идея состоит в том, чтобы использовать шаблон \s+ вместо \s для обработки двух или более последовательных пробелов во входной строке, как показано ниже:

Удалить все пробелы, табуляцию, символы и т.д. из String Java?

Я считываю текст в строку. хочу удалить абсолютно все кроме букв. Пробелы, переходы на новую строку, Абзацы, символы, ну и т.д для последующего подсчета биграмм. Пытаюсь сделать это регулярным выражением. У меня ничего не выходит

Для начала, такое выраение не убирает переходы на новую строку в некоторых случаях

replaceAll(«[^а-я]+», «»);
Возвращает ничего

  • Вопрос задан более трёх лет назад
  • 7539 просмотров
  • Facebook
  • Вконтакте
  • Twitter

EugeneP2

  • Facebook
  • Вконтакте
  • Twitter

Therapyx

Вот недавно писал для замены строк в текст фаиле с 001, 002, 003, 004. 500 хД чуток переделал, там где стринги таб, и ньюлайн, просто добавь еще твои варианты и вставь в лупе доп строку для этого стринга. Т.е. просто сделай все нужные варианты, которые нужны именно тебе. В данном же примере я сделал только пробелы и переходы на новую строку

Removing whitespace from strings in Java

I want to remove the whitespaces in the string. I tried trim() but this removes only whitespaces before and after the whole string. I also tried replaceAll(«\\W», «») but then the = also gets removed.

How can I achieve a string with:

Mateen Ulhaq's user avatar

37 Answers 37

st.replaceAll(«\\s+»,»») removes all whitespaces and non-visible characters (e.g., tab, \n ).

st.replaceAll(«\\s+»,»») and st.replaceAll(«\\s»,»») produce the same result.

The second regex is 20% faster than the first one, but as the number consecutive spaces increases, the first one performs better than the second one.

Assign the value to a variable, if not used directly:

Dave Jarvis's user avatar

\w = Anything that is a word character

\W = Anything that isn’t a word character (including punctuation etc)

\s = Anything that is a space character (including space, tab characters etc)

\S = Anything that isn’t a space character (including both letters and numbers, as well as punctuation etc)

(Edit: As pointed out, you need to escape the backslash if you want \s to reach the regex engine, resulting in \\s .)

The most correct answer to the question is:

I just adapted this code from the other answers. I’m posting it because besides being exactly what the question requested, it also demonstrates that the result is returned as a new string, the original string is not modified as some of the answers sort of imply.

(Experienced Java developers might say «of course, you can’t actually modify a String», but the target audience for this question may well not know this.)

Удаление пробелов из строк в Java

Я хочу удалить пробелы в строке. Я попробовал trim() , но это удаляет только пробелы до и после всей строки. Я также пробовал replaceAll(«\\W», «») , но затем удаляется = .

Как я могу получить строку с помощью:

30 ответов

st.replaceAll(«\\s+»,»») удаляет все пробелы и невидимые символы (например, tab, \n ).

st.replaceAll(«\\s+»,»») и st.replaceAll(«\\s»,»») дают тот же результат.

Второе регулярное выражение на 20% быстрее, чем первое, но по мере увеличения числа последовательных пробелов первое работает лучше второго.

Назначьте значение переменной, если она не используется напрямую:

\w = Все, что является символом слова

\w = Все, что не является символом слова (включая пунктуацию и т.д.)

\s = Все, что является символом пробела (включая пробел, символы табуляции и т.д.)

\s = Все, что не является символом пробела (включая буквы и цифры, а также пунктуацию и т.д.)

(Edit: Как указано, вам нужно избежать обратного слэша, если вы хотите, чтобы \s достигли механизма регулярных выражений, в результате получилось \\s .)

Самый правильный ответ на вопрос:

Я просто адаптировал этот код из других ответов. Я отправляю его, потому что, помимо того, что именно этот запрос запрошен, он также демонстрирует, что результат возвращается как новая строка, исходная строка не изменяется, как это видно из некоторых ответов.

(Опытные разработчики Java могут сказать: «Конечно, вы не можете на самом деле модифицировать строку», но целевая аудитория для этого вопроса может не знать этого.)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *