Характер. Объяснение белого пространства

1

Меня попросили разделить строку на все символы, где Character.IsWhiteSpace = true.

Соответствует ли Character.IsWhiteSpace:

c == " " || c == "\t" || c == "\r" || c == "\n"

РЕДАКТИРОВАТЬ:
Я был бы рад, если бы вы могли подумать о аккуратном способе отбросить текст по этим критериям.

Теги:

2 ответа

1
Лучший ответ

Самый простой способ разделить такие символы:

String[] words = input.split("\\p{javaWhitespace}+");

Он задокументирован в Pattern javadoc:

\p{javaWhitespace} Эквивалентен java.lang.Character.isWhitespace()

В частности, расщепление на \\s не эквивалентно, потому что оно не будет расщепляться на \u001C...\u001F.

  • 0
    Здорово. Спасибо.
  • 0
    @DraganMarjanovic спасибо за редактирование
3

Здесь вы можете узнать больше об этом.

Взято оттуда:

Определяет, является ли указанный символ пробелом в соответствии с 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. 
  • 0
    Итак, есть ли аккуратный способ разделения текста по этим символам?
  • 0
    Вы можете использовать, например, String Tokenizer . Но это зависит от того, что вы хотите сделать. Посмотрите здесь для обзора.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню