- java.lang.Object
-
- java.util.StringTokenizer
-
- 实现的所有接口
-
Enumeration<Object>
public class StringTokenizer extends Object implements 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
是一个遗留类,出于兼容性原因而保留,但在新代码中不鼓励使用它。 建议任何寻求此功能使用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()
计算此标记生成器的nextToken
方法在生成异常之前可以调用的次数。boolean
hasMoreElements()
返回与hasMoreTokens
方法相同的值。boolean
hasMoreTokens()
测试此tokenizer的字符串中是否有更多可用的标记。Object
nextElement()
返回与nextToken
方法相同的值,但其声明的返回值为Object
而不是String
。String
nextToken()
返回此字符串标记生成器的下一个标记。String
nextToken(String delim)
返回此字符串tokenizer的字符串中的下一个标记。-
声明方法的类 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
,则分隔符字符也将作为标记返回。 每个分隔符都以长度为1的字符串形式返回。 如果标志为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()
测试此tokenizer的字符串中是否有更多可用的标记。 如果此方法返回true
,则后续调用nextToken
带参数将成功返回标记。- 结果
-
true
当且仅当当前位置后字符串中至少有一个令牌时; 否则为false
。
-
nextToken
public String nextToken()
返回此字符串标记生成器的下一个标记。- 结果
- 来自此字符串标记生成器的下一个标记。
- 异常
-
NoSuchElementException
- 如果此tokenizer的字符串中没有其他标记。
-
nextToken
public String nextToken(String delim)
返回此字符串tokenizer的字符串中的下一个标记。 首先,由此StringTokenizer
对象认为是分隔符的字符集StringTokenizer
改为字符串delim
中的字符。 然后返回当前位置后字符串中的下一个标记。 当前位置超出了识别的令牌。 此次调用后,新的分隔符集仍然是默认值。- 参数
-
delim
- 新的分隔符。 - 结果
- 切换到新的分隔符集后,下一个标记。
- 异常
-
NoSuchElementException
- 如果此tokenizer的字符串中没有其他标记。 -
NullPointerException
- 如果delim是null
-
hasMoreElements
public boolean hasMoreElements()
返回与hasMoreTokens
方法相同的值。 它的存在使得该类可以实现Enumeration
接口。- Specified by:
-
hasMoreElements
接口Enumeration<Object>
- 结果
-
true
如果有更多的令牌; 否则为false
。 - 另请参见:
-
Enumeration
,hasMoreTokens()
-
nextElement
public Object nextElement()
返回与nextToken
方法相同的值,但其声明的返回值为Object
而不是String
。 它的存在使得该类可以实现Enumeration
接口。- Specified by:
-
nextElement
,界面Enumeration<Object>
- 结果
- 字符串中的下一个标记。
- 异常
-
NoSuchElementException
- 如果此tokenizer的字符串中没有其他标记。 - 另请参见:
-
Enumeration
,nextToken()
-
countTokens
public int countTokens()
计算在生成异常之前可以调用此标记生成器的nextToken
方法的次数。 目前的立场没有提前。- 结果
- 使用当前分隔符集保留在字符串中的标记数。
- 另请参见:
-
nextToken()
-
-