public class StringTokenizer
extends Object implements Enumeration<Object>
| java.lang.Object | |
| java.util.StringTokenizer | |
字符串标记器类允许应用程序将字符串分解为标记。 标记化方法比StreamTokenizer类所使用的方法简单得多。 StringTokenizer方法不区分标识符,数字和带引号的字符串,也不识别和跳过注释。
可以在创建时或以每个标记为基础指定分隔符(分隔标记的字符)集合。
StringTokenizer一个实例具有 StringTokenizer行为方式,具体取决于它是使用 returnDelims标志的值为 true还是 false :
false, delimiter characters serve to separate tokens. A token is a maximal sequence of consecutive characters that are not delimiters. true, delimiter characters are themselves considered to be tokens. A token is thus either one delimiter character, or a maximal sequence of consecutive characters that are not delimiters. 一个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
也可以看看:
Public constructors |
|
|---|---|
StringTokenizer(String str, String delim, boolean returnDelims) 为指定的字符串构造一个字符串标记器。 |
|
StringTokenizer(String str, String delim) 为指定的字符串构造一个字符串标记器。 |
|
StringTokenizer(String str) 为指定的字符串构造一个字符串标记器。 |
|
公共方法(Public methods) |
|
|---|---|
int |
countTokens() 计算此标记生成器的 |
boolean |
hasMoreElements() 返回与 |
boolean |
hasMoreTokens() 测试这个标记器的字符串是否有更多的标记可用。 |
Object |
nextElement() 返回与 |
String |
nextToken(String delim) 返回此字符串标记器字符串中的下一个标记。 |
String |
nextToken() 返回此字符串标记器的下一个标记。 |
继承方法(Inherited methods) |
|
|---|---|
java.lang.Object
|
|
java.util.Enumeration
|
|
StringTokenizer (String str, String delim, boolean returnDelims)
为指定的字符串构造一个字符串标记器。 delim参数中的所有字符都是用于分隔令牌的分隔符。
如果returnDelims标志为true ,则分隔符字符也会作为标记返回。 每个分隔符以长度为1的字符串形式返回。 如果该标志为false ,则跳过分隔符字符并仅用作标记之间的分隔符。
请注意,如果delim是null ,则此构造函数不会引发异常。 但是,试图在生成的StringTokenizer上调用其他方法可能会导致NullPointerException 。
| 参数(Parameters) | |
|---|---|
str |
String: a string to be parsed. |
delim |
String: the delimiters. |
returnDelims |
boolean: flag indicating whether to return the delimiters as tokens. |
| 抛出异常(Throws) | |
|---|---|
NullPointerException |
if str is null |
StringTokenizer (String str, String delim)
为指定的字符串构造一个字符串标记器。 delim参数中的字符是用于分隔令牌的分隔符。 分隔符字符本身不会被视为标记。
请注意,如果delim是null ,则此构造函数不会引发异常。 但是,试图在生成的StringTokenizer上调用其他方法可能会导致NullPointerException 。
| 参数(Parameters) | |
|---|---|
str |
String: a string to be parsed. |
delim |
String: the delimiters. |
| 抛出异常(Throws) | |
|---|---|
NullPointerException |
if str is null |
StringTokenizer (String str)
为指定的字符串构造一个字符串标记器。 标记器使用默认的分隔符集,即" \t\n\r\f" :空格字符,制表符,换行符,回车符和换页符。 分隔符字符本身不会被视为标记。
| 参数(Parameters) | |
|---|---|
str |
String: a string to be parsed. |
| 抛出异常(Throws) | |
|---|---|
NullPointerException |
if str is null |
int countTokens ()
计算该标记器的nextToken方法在生成异常之前可以调用的次数。 当前位置不提前。
| 返回(Returns) | |
|---|---|
int |
the number of tokens remaining in the string using the current delimiter set. |
也可以看看:
boolean hasMoreElements ()
返回与hasMoreTokens方法相同的值。 它的存在使得这个类可以实现Enumeration接口。
| 返回(Returns) | |
|---|---|
boolean |
true if there are more tokens; false otherwise. |
也可以看看:
boolean hasMoreTokens ()
测试这个标记器的字符串是否有更多的标记可用。 如果此方法返回true , 则不带参数的后续调用nextToken将成功返回令牌。
| 返回(Returns) | |
|---|---|
boolean |
true if and only if there is at least one token in the string after the current position; false otherwise. |
Object nextElement ()
返回与nextToken方法相同的值,但其声明的返回值是Object而不是String 。 它的存在使得这个类可以实现Enumeration接口。
| 返回(Returns) | |
|---|---|
Object |
the next token in the string. |
| 抛出异常(Throws) | |
|---|---|
NoSuchElementException |
if there are no more tokens in this tokenizer's string. |
也可以看看:
String nextToken (String delim)
返回此字符串标记器字符串中的下一个标记。 首先,被这个StringTokenizer对象认为是分隔符的字符集被更改为字符串delim中的字符。 然后返回当前位置后字符串中的下一个标记。 当前位置超出了所识别的标记。 此次调用后,新的分隔符集保持默认。
| 参数(Parameters) | |
|---|---|
delim |
String: the new delimiters. |
| 返回(Returns) | |
|---|---|
String |
the next token, after switching to the new delimiter set. |
| 抛出异常(Throws) | |
|---|---|
NoSuchElementException |
if there are no more tokens in this tokenizer's string. |
NullPointerException |
if delim is null |
String nextToken ()
返回此字符串标记器的下一个标记。
| 返回(Returns) | |
|---|---|
String |
the next token from this string tokenizer. |
| 抛出异常(Throws) | |
|---|---|
NoSuchElementException |
if there are no more tokens in this tokenizer's string. |