В пакет java.utii входит простой класс stringiokenizer, облегчающий разбор строк.
Класс StringTokenizer
Класс StringTokenizer из пакета java.utii небольшой, в нем три конструктора и шесть методов.
Конструкторы
StringTokenizer (String str)
создает объект, готовый разбить строку str на слова, разделенные пробелами, символами табуляций '\t', перевода строки '\n' и возврата каретки '\r'. Разделители не включаются в число слов.
StringTokenizer (String str. String delimeters)
разбивает строку в соотвествии с символами разделителями в delimeters.
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 или другой, наиболее подходящий для дальнейшей обработки текста контейнер.
Задачи для программирования
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
|
|
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.
Разработать программу подсчета слов в строке символов, определения числа символов в самом длинном слове, и сортировке слов по алфавиту.
Большие и маленькие буквы не учитываются.