Spec-Zone .ru
спецификации, руководства, описания, API
|
Можно категоризировать символы согласно их свойствам. Например, X прописная буква, и 4 десятичная цифра. Проверка символьных свойств является распространенным способом проверить данные, вводимые конечными пользователями. Если Вы продаете книги онлайн, например, Ваш экран записи порядка должен проверить, что символы в поле количества являются всеми цифрами.
Разработчики, которые не привыкли к записи глобального программного обеспечения, могли бы определить свойства символа, сравнивая это с символьными константами. Например, они могли бы записать код как это:
char ch; //... // This code is WRONG! // check if ch is a letter if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) // ... // check if ch is a digit if (ch >= '0' && ch <= '9') // ... // check if ch is a whitespace if ((ch == ' ') || (ch =='\n') || (ch == '\t')) // ...
Предыдущий код является неправильным, потому что он работает только с английским языком и несколькими другими языками. Чтобы интернационализировать предыдущий пример, замените это следующими операторами:
char ch; // ... // This code is OK! if (Character.isLetter(ch)) // ... if (Character.isDigit(ch)) // ... if (Character.isSpaceChar(ch)) // ...
Character
методы полагаются на Стандарт Unicode для того, чтобы определить свойства символа. Unicode является 16-разрядной кодировкой символов, которая поддерживает главные языки в мире. В языке программирования Java char
значения представляют символы Unicode. Если Вы проверяете свойства a char
с соответствующим Character
метод, Ваш код будет работать со всеми главными языками. Например, Character.isLetter
возвраты метода true
если символ является буквой на китайском, немецком, арабском, или другом языке.
Следующий список дает некоторые из самых полезных Character
методы сравнения. Character
Документация API полностью определяет методы.
isDigit
isLetter
isLetterOrDigit
isLowerCase
isUpperCase
isSpaceChar
isDefined
Character.getType
метод возвращает категорию Unicode символа. Каждая категория соответствует константе, определенной в Character
class. Например, getType
возвраты Character.UPPERCASE_LETTER
постоянный для символа A. Для полного списка констант категории, возвращенных getType
, см. Character
getType
и Character
константы категории. Все выражения в них if
операторы true
:
if (Character.getType('a') == Character.LOWERCASE_LETTER) // ... if (Character.getType('R') == Character.UPPERCASE_LETTER) // ... if (Character.getType('>') == Character.MATH_SYMBOL) // ... if (Character.getType('_') == Character.CONNECTOR_PUNCTUATION) // ...