- java.lang.Object
-
- java.util.StringTokenizer
-
- All Implemented Interfaces:
-
Enumeration<Object>
public class StringTokenizer extends Object implements Enumeration<Object>
字符串tokenizer类允许应用程序将字符串拆分成令牌。StreamTokenizer化方法比StreamTokenizer类使用的方法简单得多。StringTokenizer方法不区分标识符,数字和引用的字符串,也不识别和跳过注释。可以在创建时或每个令牌的基础上指定一组分隔符(分隔标记的字符)。
StringTokenizer一个实例以两种方式之一表现,具体取决于它是使用true或false的returnDelims标记创建的:- 如果标志为
false,则分隔符用于分隔标记。 令牌是不是分隔符的连续字符的最大序列。 - 如果标志是
true,则分隔符字符本身被认为是令牌。 因此,令牌是一个定界符字符,或不是分隔符的连续字符的最大序列。
A
StringTokenizer对象内部维护要标记化的字符串中的当前位置。 某些操作会将当前位置提前处理。通过使用用于创建
StringTokenizer对象的字符串的子字符串来返回令牌。以下是使用tokenizer的一个示例。 代码:
StringTokenizer st = new StringTokenizer("this is a test"); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }打印以下输出:
this is a testStringTokenizer是由于兼容性原因而保留的遗留类,尽管在新代码中不鼓励使用它。 建议任何寻求此功能的人都可以使用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
-
-
构造方法摘要
构造方法 Constructor 描述 StringTokenizer(String str)为指定的字符串构造一个字符串tokenizer。StringTokenizer(String str, String delim)为指定的字符串构造一个字符串tokenizer。StringTokenizer(String str, String delim, boolean returnDelims)为指定的字符串构造一个字符串tokenizer。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 intcountTokens()计算这个tokenizer的nextToken方法在生成异常之前可以调用的次数。booleanhasMoreElements()返回与hasMoreTokens方法相同的值。booleanhasMoreTokens()测试此令牌化程序的字符串是否有更多的令牌可用。ObjectnextElement()返回与nextToken方法相同的值,但其声明的返回值为Object而不是String。StringnextToken()从此字符串标记器返回下一个令牌。StringnextToken(String delim)返回此字符串tokenizer字符串中的下一个令牌。-
Methods inherited from interface java.util.Enumeration
asIterator
-
-
-
-
构造方法详细信息
-
StringTokenizer
public StringTokenizer(String str, String delim, boolean returnDelims)
为指定的字符串构造一个字符串tokenizer。delim参数中的所有字符都是用于分隔标记的分隔符。如果
returnDelims标志为true,则分隔符字符也作为令牌返回。 每个分隔符作为长度为1的字符串返回。 如果标志是false,则会跳过分隔符,只能在令牌之间作为分隔符。请注意,如果
delim为null,则此构造函数不会引发异常。 然而,试图调用上所产生的其他方法StringTokenizer可能导致NullPointerException。- 参数
-
str- 要解析的字符串。 -
delim- 分隔符。 -
指示是否将分隔符作为令牌返回的标志
returnDelims。 - 异常
-
NullPointerException- 如果str是null
-
StringTokenizer
public StringTokenizer(String str, String delim)
为指定的字符串构造一个字符串tokenizer。delim参数中的字符是用于分隔标记的分隔符。 分隔符字符本身不会被视为令牌。请注意,如果
delim为null,则此构造函数不会引发异常。 然而,试图调用上所产生的其他方法StringTokenizer可能导致NullPointerException。- 参数
-
str- 要解析的字符串。 -
delim- 分隔符。 - 异常
-
NullPointerException- 如果str是null
-
StringTokenizer
public StringTokenizer(String str)
为指定的字符串构造一个字符串tokenizer。 标记器使用默认分隔符集,即" \t\n\r\f":空格字符,制表符,换行符,回车字符和换页符。 分隔符字符本身不会被视为令牌。- 参数
-
str- 要解析的字符串。 - 异常
-
NullPointerException- 如果str是null
-
-
方法详细信息
-
hasMoreTokens
public boolean hasMoreTokens()
测试此令牌化程序的字符串是否有更多的令牌可用。 如果此方法返回true,则后续调用nextToken带参数的nextToken将成功返回令牌。- 结果
-
true当且仅当在当前位置之后的字符串中至少有一个令牌时;false否则。
-
nextToken
public String nextToken()
从此字符串标记器返回下一个令牌。- 结果
- 来自此字符串标记器的下一个令牌。
- 异常
-
NoSuchElementException- 如果这个tokenizer的字符串中没有更多的令牌。
-
nextToken
public String nextToken(String delim)
返回此字符串tokenizer字符串中的下一个令牌。 首先,被这个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()
计算这个tokenizer的nextToken方法在生成异常之前可以调用的次数。 当前位置不提前。- 结果
- 使用当前分隔符集合在字符串中剩余的令牌数。
- 另请参见:
-
nextToken()
-
-