Spec-Zone.ru › OpenJDK 17

Класс StringTokenizer

java.lang.Object
java.util.StringTokenizer
Все реализуемые интерфейсы:
Enumeration<Object>
public class StringTokenizer extends Object implements Enumeration<Object>
Класс string tokenizer позволяет приложению разбить строку на токены. Метод токенизации намного проще, чем метод, используемый классом 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 (int x=0; x<result.length; x++)
         System.out.println(result[x]);
 

выводит следующий результат:

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

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

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

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

Модификатор и тип Метод Описание
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, то символы-разделители также возвращаются в качестве токенов. Каждый разделитель возвращается как строка длиной один символ. Если флаг имеет значение 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, 2021, 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://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/StringTokenizer.html

Spec-Zone.ru

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