Класс Character

В этом классе собраны статические константы и методы для работы с отдельными символами.

Статический метод

digit(char ch, in radix);

переводит цифру ch системы счисления с основанием radix в ее числовое значение типа

int.

Статический метод

forDigit(int digit, int radix);

выполняет обратное преобразование целого числа digit в соответствующую цифру (тип char) в системе счисления с основанием radix.

Основание системы счисления должно находиться в диапазоне от Character.MIN_RADIX до Character.MAX RADIX.

Метод toString () переводит символ, содержащийся в классе, в строку с тем же символом.

Статические методы toLowerCase(), toUpperCase(), toTitleCase() возвращают символ, содержащийся в классе, в указанном регистре. Последний из этих методов предназначен для правильного перевода в верхний регистр четырех кодов Unicode, не выражающихся одним символом.

Статический метод

getName(int code);

возвращает полное Unicode-имя символа по его коду code.

Множество статических логических методов проверяют различные характеристики символа, переданного в качестве аргумента метода:

? isDefined () — выясняет, определен ли символ в кодировке Unicode;

? isDigit () — проверяет, является ли символ цифрой Unicode;

? isIdentifierIgnorable () — выясняет, нельзя ли использовать символ в идентификаторах;

? isISOControl () — определяет, является ли символ управляющим;

? isBmpCodePoint () — определяет, лежит ли код символа в диапазоне u0000-uFFFF;

? isSupplementaryCodePoint () — определяет, что код символа больше uFFFF;

? isJavaIdentifierPart ( ) - выясняет, можно ли использовать символ в идентифика

торах;

? isJavaIdentifierStart () — определяет, может ли символ начинать идентификатор;

? isLetter () — проверяет, является ли символ буквой Java;

? isLetterOrDigit () — проверяет, является ли символ буквой или цифрой Unicode;

? isLowerCase () — определяет, записан ли символ в нижнем регистре;

? isSpaceChar () — выясняет, является ли символ пробелом в смысле Unicode;

? isTitleCase () — проверяет, является ли символ титульным;

? isUnicodeIdentifierPart ( ) - выясняет, можно ли использовать символ в именах

Unicode;

? isUnicodeIdentifierStart () — проверяет, является ли символ буквой Unicode;

? isUpperCase () — проверяет, записан ли символ в верхнем регистре;

? isWhitespace () — выясняет, является ли символ пробельным.

Точные диапазоны управляющих символов, понятия верхнего и нижнего регистра, титульного символа, пробельных символов лучше всего посмотреть в документации Java API.

Листинг 4.5 демонстрирует использование этих методов, а на рис. 4.3 показан вывод этой программы.

Листинг 4.5. Методы класса Character в программе CharacterTest

class CharacterTest{

public static void main(String[] args){

char ch = ’9’;

Character cl = Character.valueOf(ch);

System.out.println("ch = " + ch);

System.out.println("c1.charValue() = " + cl.charValue());

System.out.println("number of ’A’ = " + Character.digit('A', 16));

System.out.println("digit for 12 = " +

Character.forDigit(12, 16));

System.out.println("c1 = " + c1.toString());

System.out.println("ch isDefined? " +

Character.isDefined(ch));

System.out.println("ch isDigit? " +

Character.isDigit(ch));

System.out.println("ch isIdentifierIgnorable? " + Character.isIdentifierIgnorable(ch));

System.out.println("ch isISOControl? " + Character.isISOControl(ch));

System.out.println("ch isJavaIdentifierPart? " + Character.isJavaIdentifierPart(ch));

System.out.println("ch isJavaIdentifierStart? " + Character.isJavaIdentifierStart(ch)) ;

System.out.println("ch isLetter? " + Character.isLetter(ch));

System.out.println("ch isLetterOrDigit? " + Character.isLetterOrDigit(ch));

System.out.println("ch isLowerCase? " + Character.isLowerCase(ch));

System.out.println("ch isSpaceChar? " + Character.isSpaceChar(ch));

System.out.println("ch isTitleCase? " + Character.isTitleCase(ch)) ;

System.out.println("ch isUnicodeIdentifierPart? " + Character.isUnicodeIdentifierPart(ch));

System.out.println("ch isUnicodeIdentifierStart? " + Character.isUnicodeIdentifierStart(ch)) ;

System.out.println("ch isUpperCase? " + Character.isUpperCase(ch));

System.out.println("ch isWhitespace? " + Character.isWhitespace(ch));

}

}

Рис. 4.3. Методы класса Character в программе CharacterTest

В класс Character вложены классы Subset и UnicodeBlock, причем класс UnicodeBlock и еще один класс, InputSubset, являются расширениями класса Subset, как это видно на рис. 4.1. Объекты этого класса содержат подмножества кодировки Unicode.

Следует заметить, что каждая новая версия Java добавляет новые методы в класс Character, поэтому точный состав методов лучше посмотреть по документации.

Вместе с классами-оболочками удобно рассмотреть два класса для работы со сколь угодно большими числами.