Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Бишоп Д. -> "Эффективная робота Java 2" -> 108

Эффективная робота Java 2 - Бишоп Д.

Бишоп Д. Эффективная робота Java 2 — Спб.: Питер, 2002. — 592 c.
ISBN 966-552-107-1
Скачать (прямая ссылка): effektivnayarabotajava2002.djvu
Предыдущая << 1 .. 102 103 104 105 106 107 < 108 > 109 110 111 112 113 114 .. 259 >> Следующая

char digit;
for (int 1=0; і < noOfDigits; i++) {
digit — in.readChar(); if (digit == '01)
recordZero(); else
recordfionzero (} ;
}
где вводимые данные — 10067022І5,на
String s = in.readStringП ;
char digits [ ] = s.toCharArray();
for (int і = 0; і < digits.length; i++) {
if (digits [i] == T O')
recordZero(J; else
recordWonzero(J;
4
}
с гораздо более традиционным представлением данных, таким как 1006702215.
г
7.2. Разделители и оболочки__________________________________________________
В главе 4 отмечалось, что считывание чисел в Java было организовано несколько неуклюже. В качестве средства, позволяющего выполнять эти простые операции, был предложен класс stream. В следующем разделе мы изучим структуру этого класса, но прежде остановимся на более важных вопросах, связанных с употреблением разделителей и оболочек.
Разделители
Итак, в Java в сфере ввода данных наблюдался ряд несовершенств. Пробелы эти были восполнены за счет класса stream* Метод, применяемый в Java, состоит в следующем: строки считываются и с помощью очень эффективных средств разбиваются на отдельные участки — лексемы (tokens), которые впоследствии приводятся к требуемому типу* Лексемы представляют собой подстроки, разделенные такими символами, как запятая, пробел или табуляция. Посредством этого метода мы можем выбрать подстроки из вводимых данных и передать их процедурам класса-оболочки для обработки. Например, в следующем предложении имеется 10 лексем, которые соответствуют общеупотребительным словам.
Where е1 re you walk, cool gales shall fan the glade[17].
Разделители и оболочки
241
Класс StrirtgTokenizer, который находится в java ,utils предоставляет еле дующие методы:
StringTokenizer (String s);
StringTokenizer (String s, String deli/nr ters) ;
StringTokenizer (String s, String delimiters,
boolean returnasTokens) ;
String nextToken () ;
String nextToken (String cfeiimi ter) ;
, boolean hasMoreTokens (}; int coimtTokens П ;___________________
После ввода строки мы объявляем для нее разделитель и указываем ее в качестве параметра, как в следующем примере:
StringTokenizer Т = new StringTokenizer (S>;
Затем просматриваем лексемы, проверяя, является ли данная лексема последней:
while (T.hasMoreTokens () } {
System.out.println(T.nextToken(}};
I
В результате ввода предыдущей конструкции может быть получен следующий результат:
Where
в' re you walk, cool gales
shall
fan
the
glade[17]
Изменение комплекта разделителей
Набор предлагаемых по умолчанию разделителей (пробел * маркер конца строки и табуляция) можно изменить. Налримерт в процессе выполнения анализа программ ы может возникнуть необходимость использовать в качестве разделителей точку с запятой, скобки и тд., которые в противном случае воспринимаются как часть лекссм. Предположим, что в качестве данных мы имеем следующее выражение:
spaceAt - з*indexOf (11 ", startingFrom} ;
При использовании разделителей, предлагаемых по умолчанию, фрагменты будут выглядеть следующим образом:
spaceAt
s.indexOf(" п,startingFrom);
242
Глаза 7. Форматирование
Возможно, это не совсем то, что нам нужно. Если нам нужно больше деталей, мы получим лучший эффект, объявив:
StringTokenizer Т = new StringTokeni *zer (з," . (,); false);
I
Здесь увеличен набор разделителей, а соответствующие параметры исключены из размеченных участков. Результат будет следующим:
spaceAt
s
indexOf
if pi
startіngFrom
что в большей степени соответствует нашим требованиям.
Оболочки
Одно из строгих правил языка Java гласит, что значения примитивных типов и объекты не должны смешиваться. В большинстве случаев это вызывает значительные неудобства, но иногда требуется направить стандартному пакету объект, а мы передаем ему, например, значение типа int. Чтобы сделать это, мы сначала помещаем значение в конструкцию, известную как класс-оболочка, вследствие чего оно становится объектом, Класс-оболочка обеспечивает доступ к значению и поддерживает разнообразные методы преобразования.
Пакет Java lang имеет классы-оболочки, ассоциированные с каждым из примитивных типов. Вот перечень этих классов: Boolean, Character, Double, Float, integer и Long (обратите внимание на то, что имена классов начинаются с большой буквы). Как следует из имен, эти классы предоставляют версии соответствующих примитивных типов данных.
В качестве примера рассмотрим важнейшие методы класса integer:
Integer (int value) ; І І конструктор
Integer valueOf [String s) ;
int intValue () ;
Int parselnt (String s)
String toString (int i)
// Далее следуют 15 другях методой класса Integer.
Конструктор принимает значение int, помещает его в оболочку и представляет как объект класса Integer.
Метод vaiueOf создает целочисленное значение на основе строки и помещает его в объект integer*
Предыдущая << 1 .. 102 103 104 105 106 107 < 108 > 109 110 111 112 113 114 .. 259 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.