Класс 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().
РАЗБИЕНИЕ СТРОКИ НА СЛОВА (ПРИМЕР):
String s = "Строка, которую мы хотим разобрать на слова"; StringTokenizer st = new StringTokenizer(s, " \t\n\r,."); while(st.hasMoreTokens()){ // Получаем слово и что-нибудь делаем с ним, например, // просто выводим на экран System.out.println(st.nextToken()) ; }
Leave A Comment