Класс 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 (int x=0; x<result.length; x++)
System.out.println(result[x]);
выводит следующий результат:
this is a test
- С:
- 1.0
- См. также:
StreamTokenizer
Конструкторы
| Конструктор | Описание |
|---|---|
StringTokenizer(String str) |
Создает токенизатор строк для указанной строки. |
StringTokenizer(String str,
String delim) |
Создает токенизатор строк для указанной строки. |
StringTokenizer(String str,
String delim,
boolean returnDelims) |
Создает токенизатор строк для указанной строки. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
countTokens() |
Вычисляет количество раз, которое можно вызвать метод |
boolean |
hasMoreElements() |
Возвращает то же значение, что и метод |
boolean |
hasMoreTokens() |
Проверяет, есть ли еще токены, доступные из строки этого токенизатора. |
Object |
nextElement() |
Возвращает то же значение, что и метод |
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, 2020, 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/11/docs/api/java.base/java/util/StringTokenizer.html