查了下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<result.length; x++)
         System.out.println(result[x]);

 

posted on 2015-09-24 13:47  前端小菜j  阅读(295)  评论(0编辑  收藏  举报