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, поэтому точный состав методов лучше посмотреть по документации.
Вместе с классами-оболочками удобно рассмотреть два класса для работы со сколь угодно большими числами.
Все примитивные целые типы имеют ограниченный диапазон значений. В целочисленной арифметике Java нет переполнения, целые числа приводятся по модулю, равному диапазону значений.
Для того чтобы было можно производить целочисленные вычисления с любой разрядностью, в состав Java API введен класс BigInteger, хранящийся в пакете java.math. Этот класс расширяет класс Number, следовательно, в нем переопределены методы
doubleValue(), floatValue(), intValue(), longValue(). Методы byteValue() и shortValue() не переопределены, а прямо наследуются от класса Number.
Действия с объектами класса BigInteger не приводят ни к переполнению, ни к приведению по модулю. Если результат операции велик, то число разрядов просто наращивается. Числа хранятся в двоичной форме с дополнительным кодом.
Перед выполнением операции числа выравниваются по длине распространением знакового разряда.
Шесть конструкторов класса создают объект класса BigInteger из строки символов (знака числа и цифр), массива байтов или задают случайное число. Чаще всего используются три конструктора:
□ BigInteger(String value) — объект будет хранить большое целое число, заданное строкой цифр, перед которыми может стоять знак минус;
□ BigInteger(String value, int radix) — задается строка цифр со знаком value, записанная в системе счисления с основанием radix;
□ BigInteger(byte[] value) — объект будет хранить большое целое число, заданное массивом value, содержащим двоичное представление числа в дополнительном коде.
Три константы — zero, one и ten — моделируют нуль, единицу и число десять в операциях с объектами класса BigInteger.
Метод toByteArray() преобразует объект в массив байтов.
Большинство методов класса BigInteger моделируют целочисленные операции и функции, возвращая объект класса BigInteger:
□ abs () — возвращает объект, содержащий абсолютное значение числа, хранящегося в данном объекте this;
□ add (x) — операция сложения this + x;
□ and(x) — операция побитовой конъюнкции this & x;
□ andNot(x) — операция побитовой дизъюнкции с дополнением this & (~x);
□ divide (x) — операция деления this / x;
□ divideAndRemainder (x) - возвращает массив из двух объектов класса BigInteger, со
держащих частное и остаток от деления this на x;
□ gcd(x) — наибольший общий делитель абсолютных значений объекта this и аргумента x;
□ max(x) — наибольшее из значений объекта this и аргумента x;
□ min(x) — наименьшее из значений объекта this и аргумента x;
□ mod(x) — остаток от деления объекта this на аргумент метода x;
□ modInverse (x) — остаток от деления числа, обратного объекту this, на аргумент x;
□ modPow(n, m) — остаток от деления объекта this, возведенного в степень n, на m;
□ multiply(x) — операция умножения this * x;
□ negate () — перемена знака числа, хранящегося в объекте;
□ not () — операция отрицания -this;
□ or(x) — операция побитовой дизъюнкции this | x;
□ pow(n) — операция возведения числа, хранящегося в объекте, в степень n;
□ remainder(x) — операция взятия остатка от деления this % x;
□ shiftLeft (n) — операция сдвига влево this << n;
□ shiftRight (n) — операция арифметического сдвига вправо this >> n;
□ signum() — функция sign(x);
Читать дальше
Конец ознакомительного отрывка
Купить книгу