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 |
Вместе с классами-оболочками удобно рассмотреть два класса для работы со сколь угодно большими числами.
Класс
Все примитивные целые типы имеют ограниченный диапазон значений. В целочисленной арифметике 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;
□ multiply(x) — операция умножения this * x;
□ signum() — функция sign(x);
□ subtract (x) — операция вычитания this - x;
Листинг 4.6. Методы класса BigInteger В Программе BiglntegerTest
import java.math.BigInteger; class BigIntegerTest{
public static void main(String[] args){