Spec-Zone.ru › OpenJDK 24

Класс StringTokenizer

java.lang.Object
java.util.StringTokenizer
Все реализованные интерфейсы:
Enumeration<Object>
public class StringTokenizer extends Object implements Enumeration<Object>
Класс StringTokenizer позволяет приложению разбивать строку на токены. Метод токенизации значительно проще, чем тот, что используется классом StreamTokenizer. Методы StringTokenizer не различают идентификаторы, числа и строковые значения в кавычках, а также не распознают и не пропускают комментарии.

Множество разделителей (символы, разделяющие токены) может быть указано либо во время создания, либо на основе каждого токена.

Экземпляр класса StringTokenizer ведет себя одним из двух способов, в зависимости от того, был ли он создан с флагом returnDelims, имеющим значение true или false:

  • Если флаг равен false, символы-разделители служат для разделения токенов. Токен — это максимальная последовательность последовательных символов, которые не являются разделителями.
  • Если флаг равен true, символы-разделители сами считаются токенами. Таким образом, токен — это либо один символ-разделитель, либо максимальная последовательность последовательных символов, которые не являются разделителями.

Объект StringTokenizer внутренне поддерживает текущую позицию в строке, подлежащей токенизации. Некоторые операции перемещают эту текущую позицию дальше, минуя обработанные символы.

Токен возвращается путем взятия подстроки строки, которая использовалась для создания объекта StringTokenizer.

Следующий пример демонстрирует использование токенизатора. Код:

     StringTokenizer st = new StringTokenizer("this is a test");
     while (st.hasMoreTokens()) {
         System.out.println(st.nextToken());
     }
 

выводит следующий вывод:

     this
     is
     a
     test
 

Класс StringTokenizer является устаревшим классом, который сохраняется по причинам совместимости, хотя его использование в новом коде не рекомендуется. Рекомендуется использовать метод split класса String или пакет java.util.regex вместо него.

Следующий пример иллюстрирует, как метод String.split может быть использован для разделения строки на основные токены:

     String[] result = "this is a test".split("\\s");
     for (String r : result)
         System.out.println(r);
 

выводит следующий вывод:

     this
     is
     a
     test
 
С:
1.0
См. также:
  • StreamTokenizer

Краткое описание конструкторов

Конструктор Описание
StringTokenizer(String str)
Создаёт токенизатор строк для указанной строки.
StringTokenizer(String str, String delim)
Создаёт токенизатор строк для указанной строки.
StringTokenizer(String str, String delim, boolean returnDelims)
Создаёт токенизатор строк для указанной строки.

Краткое описание методов

Модификатор и тип Метод Описание
int countTokens()
Вычисляет количество раз, которое можно вызвать метод nextToken этого токенизатора, прежде чем он сгенерирует исключение.
boolean hasMoreElements()
Возвращает то же значение, что и метод hasMoreTokens.
boolean hasMoreTokens()
Проверяет, есть ли еще токены, доступные из строки этого токенизатора.
Object nextElement()
Возвращает то же значение, что и метод nextToken, за исключением того, что его объявленное возвращаемое значение — Object вместо String.
String nextToken()
Возвращает следующий токен из этой строки токенизатора.
String nextToken(String delim)
Возвращает следующий токен в строке токенизатора.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе java.util.Enumeration

asIterator

Подробное описание конструкторов

StringTokenizer

public StringTokenizer(String str, String delim, boolean returnDelims)
Создаёт разделитель строк для указанной строки. Все символы в аргументе delim являются разделителями для разделения токенов.

Если флаг returnDelims имеет значение true, то символы-разделители также возвращаются как токены. Каждый разделитель возвращается как строка, содержащая один Unicode-символ разделителя (который может быть одним или двумя char). Если флаг имеет значение false, то символы-разделители пропускаются и служат только разделителями между токенами.

Обратите внимание, что если delim имеет значение null, этот конструктор не генерирует исключение. Однако попытка вызвать другие методы на получившемся StringTokenizer может привести к NullPointerException.

Параметры:
str - строка для разбора.
delim - разделители.
returnDelims - флаг, указывающий, нужно ли возвращать разделители как токены.
Исключения:
NullPointerException - если str имеет значение null

StringTokenizer

public StringTokenizer(String str, String delim)
Создаёт разделитель строк для указанной строки. Символы в аргументе delim являются разделителями для разделения токенов. Символы-разделители сами не будут рассматриваться как токены.

Обратите внимание, что если delim имеет значение null, этот конструктор не генерирует исключение. Однако попытка вызвать другие методы на получившемся StringTokenizer может привести к NullPointerException.

Параметры:
str - строка для разбора.
delim - разделители.
Исключения:
NullPointerException - если str имеет значение null

StringTokenizer

public StringTokenizer(String str)
Создаёт разделитель строк для указанной строки. Разделитель использует набор по умолчанию, который состоит из " \t\n\r\f": пробела, табуляции, новой строки, возврата каретки и знака табуляции. Символы-разделители сами не будут рассматриваться как токены.
Параметры:
str - строка для разбора.
Исключения:
NullPointerException - если str имеет значение null

Подробное описание методов

hasMoreTokens

public boolean hasMoreTokens()
Проверяет, есть ли ещё токены в строке, используемой этим разделителем. Если этот метод возвращает true, то последующий вызов nextToken без аргументов успешно вернёт токен.
Возвращает:
true тогда и только тогда, когда в строке после текущей позиции есть хотя бы один токен; false в противном случае.

nextToken

public String nextToken()
Возвращает следующий токен из этой строки разделителя.
Возвращает:
следующий токен из этой строки разделителя.
Исключения:
NoSuchElementException - если в строке разделителя больше нет токенов.

nextToken

public String nextToken(String delim)
Возвращает следующий токен в строке этого разделителя. Сначала набор символов, рассматриваемых как разделители этим объектом StringTokenizer, изменяется на символы в строке delim. Затем возвращается следующий токен в строке после текущей позиции. Текущая позиция сдвигается за распознанным токеном. Новый набор разделителей остаётся по умолчанию после этого вызова.
Параметры:
delim - новые разделители.
Возвращает:
следующий токен после переключения на новый набор разделителей.
Исключения:
NoSuchElementException - если в строке разделителя больше нет токенов.
NullPointerException - если delim имеет значение null

hasMoreElements

public boolean hasMoreElements()
Возвращает то же значение, что и метод hasMoreTokens. Он существует для того, чтобы этот класс мог реализовать интерфейс Enumeration.
Определено в:
hasMoreElements в интерфейсе Enumeration<Object>
Возвращает:
true если есть ещё токены; false в противном случае.
См. также:
  • Enumeration
  • hasMoreTokens()

nextElement

public Object nextElement()
Возвращает то же значение, что и метод nextToken, за исключением того, что его объявленное возвращаемое значение — Object, а не String. Он существует для того, чтобы этот класс мог реализовать интерфейс Enumeration.
Определено в:
nextElement в интерфейсе Enumeration<Object>
Возвращает:
следующий токен в строке.
Исключения:
NoSuchElementException - если в строке разделителя больше нет токенов.
См. также:
  • Enumeration
  • nextToken()

countTokens

public int countTokens()
Вычисляет количество вызовов метода nextToken этого разделителя, прежде чем он сгенерирует исключение. Текущая позиция не сдвигается.
Возвращает:
количество оставшихся токенов в строке, используя текущий набор разделителей.
См. также:
  • nextToken()

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/StringTokenizer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API