Меня попросили разделить строку на все символы, где Character.IsWhiteSpace = true
.
Соответствует ли Character.IsWhiteSpace
:
c == " " || c == "\t" || c == "\r" || c == "\n"
РЕДАКТИРОВАТЬ:
Я был бы рад, если бы вы могли подумать о аккуратном способе отбросить текст по этим критериям.
Самый простой способ разделить такие символы:
String[] words = input.split("\\p{javaWhitespace}+");
Он задокументирован в Pattern
javadoc:
\p{javaWhitespace}
Эквивалентенjava.lang.Character.isWhitespace()
В частности, расщепление на \\s
не эквивалентно, потому что оно не будет расщепляться на \u001C...\u001F
.
Здесь вы можете узнать больше об этом.
Взято оттуда:
Определяет, является ли указанный символ пробелом в соответствии с Java. Символ является символом пробела Java тогда и только тогда, когда он удовлетворяет одному из следующих критериев:
It is a Unicode space character (SPACE_SEPARATOR, LINE_SEPARATOR, or PARAGRAPH_SEPARATOR) but is not also a non-breaking space ('\u00A0', '\u2007', '\u202F').
It is '\t', U+0009 HORIZONTAL TABULATION.
It is '\n', U+000A LINE FEED.
It is '\u000B', U+000B VERTICAL TABULATION.
It is '\f', U+000C FORM FEED.
It is '\r', U+000D CARRIAGE RETURN.
It is '\u001C', U+001C FILE SEPARATOR.
It is '\u001D', U+001D GROUP SEPARATOR.
It is '\u001E', U+001E RECORD SEPARATOR.
It is '\u001F', U+001F UNIT SEPARATOR.
String Tokenizer
. Но это зависит от того, что вы хотите сделать. Посмотрите здесь для обзора.