Шаг 85.
Язык программирования Java.
Класс StringTokenizer

На этом шаге мы рассмотрим класс StringTokenizer

Класс StringTokenizer расположен в пакете java.util. Класс StringTokenizer используют для того, чтобы разбить строку на подстроки (здесь и далее токены) по заданным разделителям. Отличие этого способа от функции split() класса String в том, что разбиение на токены не происходит сразу. Разбивка выполняется тогда, когда это нужно программисту и столько раз, сколько нужно программисту.

Создать объект класса StringTokenizer можно несколькими способами. Для этого можно воспользоваться одним из конструкторов, приведенных в таблице 1

Таблица 1. Конструкторы класса StringTokenizer
Конструктор Описание
StringTokenizer(String str) Конструктор, которому передается строка для разбиения на токены. Разделителем строки str является любой пробельный символ.
StringTokenizer(String str, String delim) Отличие этого конструктора от 1 конструктора в том, что задается строка разделителей.
StringTokenizer(String str, String delim, boolean returnDelims) Отличие этого конструктора от 2 конструктора в том, что задается флаг - включать ли разделители в токены.

У всех конструкторов есть особенность. Если аргумент str у любого конструктора будет равен null, то будет брошено исключение NPE.

Для работы с классом StringTokenizer достаточно знать две функции:

  1. boolean hasMoreTokens() - Функция проверяет есть ли еще не обработанные токены. Если есть, то возвращает true. В противном случае - false.
  2. String nextToken() - Функция возвращает очередной необработанный токен. Если уже все обработаны токены и вызвать в таком случае эту функцию, то будет брошено исключение NoSuchElementException.

Приведем ниже пример использования класса StringTokenizer


import java.util.StringTokenizer;

/**
 * Пример использования класса StringTokenizer
 * */
public class Main {
    public static void main(String[] args) {
        String s = "AV Analytics Vidhya AV";

        /*
          Формируем объект по заданной строке s.
          Разделителем на токены является любой пробельный символ
        */
        StringTokenizer stringTokenizer = new StringTokenizer(s);

        /*Выводим исходную строку*/
        System.out.println("Исходная строка: " + s);

        /*Выводим список получившихся токенов*/
        System.out.println("Список токенов: ");

        int i = 1;
        /*Пока есть не обработанные токены*/
        while (stringTokenizer.hasMoreElements()) {
            /*Получаем очередной токен*/
            String token = stringTokenizer.nextToken();
            /*Выводим токен на экран*/
            System.out.println("\t" + i + ": " + token);
            i++;
        }
    }
}

Проект можно взять здесь


Рис. 1. Вывод программы


На следующем шаге мы рассмотрим класс File

Предыдущий шаг Содержание Следующий шаг