logo search
Хабибуллин

Класс StringTokenizer

Класс StringTokenizer из пакета java.util небольшой, в нем три конструктора и шесть методов.

Первый конструктор, StringTokenizer(String str), создает объект, готовый разбить строку str на слова, разделенные пробелами, символами табуляции '\t', перевода строки '\n' и возврата каретки '\r'. Разделители не включаются в число слов.

Второй конструктор, StringTokenizer(String str, String delimeters), задает разделители

вторым параметром delimeters, например:

StringTokenizer("Казнить,нельзя:пробелов-нет", " \t\n\r,:-");

Здесь первый разделитель — пробел. Потом идут символ табуляции, символ перевода строки, символ возврата каретки, запятая, двоеточие, дефис. Порядок расположения разделителей в строке delimeters не имеет значения. Разделители не включаются в число слов.

Третий конструктор позволяет включить разделители в число слов:

StringTokenizer(String str, String delimeters, boolean flag);

Если параметр flag равен true, то разделители включаются в число слов, если false — нет. Например:

StringTokenizer("a — (b + c) / b * c", " \t\n\r+*-/()", true);

В разборе строки на слова активно участвуют два метода:

метод nextToken() возвращает в виде строки следующее слово;

логический метод hasMoreTokens() возвращает true, если в строке еще есть слова, и false, если слов больше нет.

Третий метод, countTokens(), возвращает число оставшихся слов.

Четвертый метод, nextToken(String newDelimeters), позволяет "на ходу" менять разделители. Следующее слово будет выделено по новым разделителям newDelimeters; новые разделители действуют далее вместо старых разделителей, определенных в конструкторе или предыдущем методе nextToken().

Оставшиеся два метода, nextElement() и hasMoreElements(), реализуют интерфейс

Enumeration. Они просто обращаются к методам nextToken() и hasMoreTokens().