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 полностью определяет методы.

Character.getType метод возвращает категорию Unicode символа. Каждая категория соответствует константе, определенной в Character class. Например, getType возвраты Character.UPPERCASE_LETTER постоянный для символа A. Для полного списка констант категории, возвращенных getType, см. Character Документация API. Следующий пример показывает, как использовать 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)
    // ...

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Работа с текстом
Следующая страница: Сравнение Строк