Почему? Потому что так определяется этот метод. javado c для isWhiteSpace
перечисляет коды, которым он соответствует. 4, которые вы определили, отсутствуют в списке.
Мы не можем сказать вам, почему это было определено таким образом. Однако одно из следствий того, что говорит javado c, заключается в том, что '\u00A0'
, '\u2007'
и '\u202F'
исключаются, потому что они являются неразрывными пробелами.
'\u0085'
или NEL
- интересный случай. Согласно таблицам кодов Unicode (см. здесь для неофициального резюме), он НЕ является членом общих категорий SPACE_SEPARATOR, LINE_SEPARATOR или PARAGRAPH_SEPARATOR. (Он отображается в категории CONTROL.)
Если вам нужен метод, распознающий все символы пробелов Unicode (т.е. символы в SPACE_SEPARATOR, LINE_SEPARATOR или PARAGRAPH_SEPARATOR), вы должны использовать isSpaceChar
( javado c) вместо isWhiteSpace
.
Обратите внимание, что SPE c Unicode не является постоянным. Категоризация кодов и определение «пустого пространства» со временем эволюционировали. Каждая версия Java реализует определенную c версию c Unicode, которая была актуальной на момент ее выпуска. Например:
- Java 8 реализует Unicode 6.2
- Java 11 реализует Unicode 10.0.0
- Java 13 реализует Unicode 12.1
Подробности указаны в javado c для класса Character
для каждой версии Java. Обратите внимание, что данный выпуск Java НЕ исправлен для отслеживания последующих выпусков Unicode.
Суть в том, что «белое пространство» - довольно скользкое понятие. Если вам нужен метод, реализующий конкретное значение c, возможно, вам придется реализовать его самостоятельно.