Если у вас есть несколько пробелов внутри строки в Java, как вы можете сжать их в один пробел между словами? - PullRequest
10 голосов
/ 02 декабря 2010

Если строка содержит несколько пробелов между словами:

The    cat         sat            on           the           mat.

Как сделать из него один пробел?

The cat sat on the mat.

Я попробовал это, но это не сработало:

myText = myText.trim().replace("  ", " ");

Ответы [ 2 ]

51 голосов
/ 02 декабря 2010

С регулярным выражением:

myText.trim().replaceAll("\\s+", " ");

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

См. Также java.util.regex.Pattern для получения дополнительной информации о регулярных выражениях Java:

http://download.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

0 голосов
/ 09 июня 2015

Все, что вам нужно:

myText.replaceAll("\\s++", " ");

Соответствие спецификациям replaceAll метода класса String: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)

и спецификации класса Pattern в Java (попробуйте ctrl-F для "пробела" и "++"): http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

По-моему, гораздо лучше открыть эти страницы и посмотреть самостоятельно, чем просто скопировать фрагмент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...