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 |
|
---|---|
From class java.lang.Object
|
|
From interface 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. |