Читаем Java 7 полностью

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, поэтому точный состав методов лучше посмотреть по документации.

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

<p><strong>Класс <emphasis>BigInteger</emphasis></strong></p>

Все примитивные целые типы имеют ограниченный диапазон значений. В целочисленной арифметике 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);

□ subtract (x) — операция вычитания this - x;

□ xor(x ) — операция "исключающее ИЛИ" this л x.В листинге 4.6 приведены примеры использования данных методов, а рис. 4.4 показывает результаты выполнения этого листинга.

Листинг 4.6. Методы класса BigInteger В Программе BiglntegerTest

import java.math.BigInteger; class BigIntegerTest{

public static void main(String[] args){

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных