java.lang.Object
java.util.StringTokenizer
- 所有已实现的接口:
-
Enumeration<Object>
字符串标记类允许应用程序将字符串分解为标记。标记化方法比
StreamTokenizer类使用的方法简单得多。 StringTokenizer方法不区分标识符、数字和带引号的字符串,也不识别和跳过注释。
分隔符集(分隔标记的字符)可以在创建时或每个标记的基础上指定。
StringTokenizer的实例行为有两种方式,取决于是否使用值为true或false的returnDelims标志创建:
- 如果标志为
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是一个保留的遗留类,出于兼容性原因保留,尽管不建议在新代码中使用。建议寻求此功能的任何人改用String的split方法或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
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionStringTokenizer(String str) 为指定的字符串构造一个字符串标记器。StringTokenizer(String str, String delim) 为指定的字符串构造一个字符串标记器。StringTokenizer(String str, String delim, boolean returnDelims) 为指定的字符串构造一个字符串标记器。 -
Method Summary
Modifier and TypeMethodDescriptionint计算在生成异常之前可以调用此标记器的nextToken方法的次数。boolean返回与hasMoreTokens方法相同的值。boolean测试此标记器的字符串中是否有更多标记可用。返回与nextToken方法相同的值,只是其声明的返回值为Object而不是String。返回此字符串标记器的下一个标记。返回此字符串标记器的字符串中的下一个标记。Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface java.util.Enumeration
asIterator
-
Constructor Details
-
StringTokenizer
为指定的字符串构造一个字符串标记器。delim参数中的所有字符都是用于分隔标记的分隔符。如果
returnDelims标志为true,则分隔符字符也作为标记返回。每个分隔符都作为由分隔符的一个或两个char组成的字符串返回。如果标志为false,则跳过分隔符字符,分隔符字符仅用作标记之间的分隔符。请注意,如果
delim为null,此构造函数不会引发异常。但是,尝试在生成的StringTokenizer上调用其他方法可能会导致NullPointerException。- 参数:
-
str- 要解析的字符串。 -
delim- 分隔符。 -
returnDelims- 指示是否将分隔符作为标记返回的标志。 - 抛出:
-
NullPointerException- 如果str为null
-
StringTokenizer
为指定的字符串构造一个字符串标记器。delim参数中的字符是用于分隔标记的分隔符。 分隔符字符本身不会被视为标记。请注意,如果
delim为null,此构造函数不会引发异常。但是,尝试在生成的StringTokenizer上调用其他方法可能会导致NullPointerException。- 参数:
-
str- 要解析的字符串。 -
delim- 分隔符。 - 抛出:
-
NullPointerException- 如果str为null
-
StringTokenizer
为指定的字符串构造一个字符串标记器。 标记器使用默认的分隔符集,即" \t\n\r\f":空格字符、制表符、换行符、回车符和换页符。 分隔符字符本身不会被视为标记。- 参数:
-
str- 要解析的字符串。 - 抛出:
-
NullPointerException- 如果str为null
-
-
Method Details
-
hasMoreTokens
public boolean hasMoreTokens()测试此标记器的字符串中是否有更多标记可用。 如果此方法返回true,则随后调用不带参数的nextToken将成功返回一个标记。- 返回:
-
如果在当前位置之后的字符串中至少有一个标记,则返回
true;否则返回false。
-
nextToken
返回此字符串标记器的下一个标记。- 返回:
- 此字符串标记器的下一个标记。
- 抛出:
-
NoSuchElementException- 如果此标记器的字符串中没有更多标记。
-
nextToken
返回此字符串标记器的字符串中的下一个标记。 首先,此StringTokenizer对象认为是分隔符的字符集更改为字符串delim中的字符。 然后返回当前位置之后的字符串中的下一个标记。 当前位置被推进到识别的标记之后。 此调用后,新的分隔符集仍然是默认的。- 参数:
-
delim- 新的分隔符。 - 返回:
- 切换到新的分隔符集后的下一个标记。
- 抛出:
-
NoSuchElementException- 如果此标记器的字符串中没有更多标记。 -
NullPointerException- 如果delim为null
-
hasMoreElements
public boolean hasMoreElements()返回与hasMoreTokens方法相同的值。 它存在是为了使此类能够实现Enumeration接口。- 指定者:
-
hasMoreElements在接口Enumeration<Object> - 返回:
-
如果有更多标记,则返回
true;否则返回false。 - 参见:
-
nextElement
返回与nextToken方法相同的值,只是其声明的返回值为Object而不是String。 它存在是为了使此类能够实现Enumeration接口。- 指定者:
-
nextElement在接口Enumeration<Object> - 返回:
- 字符串中的下一个标记。
- 抛出:
-
NoSuchElementException- 如果此标记器的字符串中没有更多标记。 - 参见:
-
countTokens
public int countTokens()计算在生成异常之前可以调用此标记器的nextToken方法的次数。 当前位置不会被推进。- 返回:
- 使用当前分隔符集中剩余的标记数。
- 参见:
-