查了下api文档:发现
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
既然已经不必提倡,代码尽量不要用这些;还是简单了解下用法:一般是3个方法一起用,迭代:
方法1:
public StringTokenizer(String str, String delim, boolean returnDelims)
如果 returnDelims 标志为 true,则分隔符字符也作为标记返回。每个分隔符都作为一个长度为 1 的字符串返回。如果标志为 false,则跳过分隔符,只是用作标记之间的分隔符。注意,如果 delim 为 null,则此构造方法不抛出异常。但是,尝试对得到的 StringTokenizer 调用其他方法则可能抛出 NullPointerException。参数:str - 要解析的字符串。delim - 分隔符。returnDelims - 指示是否将分隔符作为标记返回的标志。抛出:NullPointerException - 如果 str 为 null。方法2:
public String nextToken()
返回此 string tokenizer 的下一个标记。返回:此 string tokenizer 的下一个标记。抛出:NoSuchElementException - 如果此 tokenizer 的字符串中没有更多标记。方法3:
public boolean hasMoreElements()
如果有更多标记,则为 true;否则为 false。
一个例子:
StringTokenizer test = new StringTokenizer("aa=cc","=", true);
while(test.hasMoreElements()){ System.out.println(test.nextToken()); }返回:aa = cc
现在这个方法已经不提倡用了,存在的目的是为了兼容以前的代码:
String 的 split 方法或 java.util.regex 包。
String[] result = "this is a test".split("\\s"); for (int x=0; x