Иллюстрированный самоучитель по Java


         

на слова, разделенные пробелами, символами


Класс StringTokenizer
Класс
StringTokenizer
из пакета
java.utii
небольшой, в нем три конструктора и шесть методов.
Первый конструктор
StringTokenizer (String str)
создает объект, готовый разбить строку
str
на слова, разделенные пробелами, символами табуляций 
'\t',
перевода строки
'\n'
и возврата каретки
'\r'
. Разделители не включаются в число слов.
Второй конструктор
StringTokenizer (String str. String delimeters)
задает разделители вторым параметром
deiimeters
, например:
StringTokenizer("Казнить,нельзя:пробелов-нет", " \t\n\r,:-");
Здесь первый разделитель — пробел. Потом идут символ табуляции, символ перевода строки, символ возврата каретки, запятая, двоеточие, дефис. Порядок расположения разделителей в строке
deiimeters
не имеет значения. Разделители не включаются в число слов.
Третий конструктор позволяет включить разделители в число слов:
StringTokenizer(String str, String deiimeters, boolean flag);
Если параметр
flag
равен
true
, то разделители включаются в число слов, если
false
— нет. Например:
StringTokenizer("а - (Ь + с) / Ь * с", " \t\n\r+*-/(), true);
В разборе строки на слова активно участвуют два метода:
метод
nextToken ()
возвращает в виде строки следующее слово;
логический метод
hasMoreTokens ()
возвращает
true
, если в строке еще есть слова, и
false
, если слов больше нет.
Третий метод
countTokens ()
возвращает число оставшихся слов.
Четвертый метод
nextToken(string newDeiimeters)
позволяет "на ходу" менять разделители. Следующее слово будет выделено по новым разделителям
newDeiimeters;
новые разделители действуют далее вместо старых разделителей, определенных в конструкторе или предыдущем методе
nextToken ()
.
Оставшиеся два метода
nextEiement ()
и
hasMoreEiements ()
реализуют интерфейс
Enumeration
. Они просто обращаются к методам
nextToken ()
и 
hasMoreTokens().
Схема очень проста (листинг 5.2).

 Листинг 5.2.
Разбиение строки на слова :
String s = "Строка, которую мы хотим разобрать на слова"; 
StringTokenizer st = new StringTokenizer(s, " \t\n\r,."); 
while(st.hasMoreTokens()){
// Получаем слово и что-нибудь делаем с ним, например,
// просто выводим на экран
System.out.println(st.nextToken()) ; 
}
Полученные слова обычно заносятся в какой-нибудь класс-коллекцию:
Vector, Stack
или другой, наиболее подходящий для дальнейшей обработки текста контейнер. Классы-коллекции мы рассмотрим в следующей главе.

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий