需要 StringTokenizer 吗?

来源:互联网 发布:路飞 知乎 编辑:程序博客网 时间:2024/04/30 17:37

正则表达式提供的新功能可能会使我们想知道最初的 StringTokenizer 类是否仍旧重要。

在 JDK1.4 之前,将字符串分离成几部分的方法是:利用 StringTokenizer 将该字符串  “用

标记断开“。但是现在利用正则表达式,同样的事情做起来变得更加容易和更加简洁了。

 

//:c12:ReplacingStringTokenizer.java

importjava.util.regex.*;

importcom.bruceeckel.simpletest.*;

importjava.util.*;

 

public classReplacingStringTokenizer {

    private static Test monitor = new Test();

    public static void main(String[] args) {

        String input = "But I'm not deadyet! I feel happy!";

    StringTokenizer stoke = new StringTokenizer(input);

    while(stoke.hasMoreElements())

      System.out.println(stoke.nextToken());

   System.out.println(Arrays.asList(input.split(" ")));

    monitor.expect(new String[] {

            "But",

            "I'm",

            "not",

            "dead",

            "yet!",

            "I",

            "feel",

            "happy!",

      "[But, I'm, not, dead, yet!, I,feel, happy!]"

        });

    }

} ///:~

 

通过使用正则表达式,我们还可以使用更复杂的模式来断开字符串——而这用

StringTokenizer 来实现要困难得多。这样说似乎比较稳妥:正则表达式取代了先前版本中

所有与“用标记断开”相关的类。

 

想更多了解正则表达式,请参阅 MasteringRegular Expressions(第二版本),Jeffrey E.

F. Friedl 著(O’Reilly, 2002)