使用StringTokenizer和String.split()之间的区别?

我一直在使用String[] split(String)String类来拆分某个给定分隔符的任何字符串,并且它工作正常。

但是,现在预计会使用StringTokenizer重新考虑相同的逻辑。 但是使用一个而不是另一个有什么区别和好处。

另外,我觉得在单个调用中split()返回的String[]比使用StringTokenizer类的对象更有效。

– > String.split()Pattern.split()为您提供了一个简单的语法来完成后者,但这基本上就是他们所做的一切。 如果要解析生成的字符串,或者根据特定标记中途更改分隔符,它们将无法帮助您。

– > StringTokenizerString.split()更具限制性,并且使用起来也有些小问题。 它主要用于拉出由固定子串分隔的标记。 由于这个限制,它的速度大约是String.split()两倍。 (请参阅我对String.split()StringTokenizer 。)它也早于正则表达式API,其中String.split()是其中的一部分。

您将从我的时间中注意到, String.split()仍可在几毫秒内在典型计算机上对数千个字符串进行标记。 此外,它具有优于StringTokenizer的优势,它可以将输出作为字符串数组提供,这通常是您想要的。 使用StringTokenizer提供的Enumeration在大多数情况下过于“语法上挑剔”。 从这个角度来看, StringTokenizer现在有点浪费空间,你也可以使用String.split()

从这个链接回答

看看JavaDocs

StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。 建议任何寻求此function的人都使用String的split方法或java.util.regex包。

以下示例说明了如何使用String.split方法将字符串拆分为其基本标记:

  String[] result = "this is a test".split("\\s"); for (int x=0; x 

String#split接受一个正则表达式, StringTokenizer是否只接受一个String ,用于分割字符串。 你应该始终坚持String#split ,它比StringTokenizer更强大。

读这个

StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。 建议任何寻求此function的人都使用String的split方法或java.util.regex包。

我有以下程序,

字符串“x”是一个分隔12s34的标签;

  public class Testoken { public static void main(String[] args) { String x = "1 2 s 3 4 "; StringTokenizer st = new StringTokenizer(x,"\t"); int i = 0; while(st.hasMoreTokens()){ System.out.println("token-->"+st.nextToken()); i++; } System.out.println("i-->"+i);//elements from tokenizer String [] a = x.split("\t"); System.out.println("length--->"+a.length); for(int y = 0;y"+a[y]);//elements from split } } } Output: token-->1 token-->2 token-->s token-->3 token-->4 i-->5 length--->8 value-->1 value-->2 value-->s value--> value-->3 value--> value--> value-->4 

http://docs.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html说:

StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它。 建议任何寻求此function的人都使用String的split方法或java.util.regex包。

所以我想说,不要改变它,并向推荐重构它的人展示这一点。 也许他们有旧的信息或其他很好的理由告诉你。

这是一个链接回答(从我的角度来看)这个问题: http : //lavnish.blogspot.com/2008/05/stringsplit-vs-stringtokenizer.html