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

Sat*_*dra 14 java string split stringtokenizer

我已经使用过String[] split(String)String阶级分裂任何字符串为某些给定的分隔符,它工作得很好.

但是,现在预计会重新考虑相同的逻辑因素StringTokenizer.但是使用一个与另一个相比有什么不同和好处.

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

Mad*_*mer 19

看看JavaDocs

StringTokenizer是一个遗留类,出于兼容性原因而保留,尽管在新代码中不鼓励使用它.建议任何寻求此功能的人都使用String的split方法或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]);
Run Code Online (Sandbox Code Playgroud)


Sho*_*ate 19

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

- > StringTokenizerString.split()使用更加严格,而且使用起来也有些小问题.它主要用于拉出由固定子串分隔的令牌.由于这个限制,它的速度大约是原来的两倍String.split().(参见我String.split()和的比较StringTokenizer.)它也早于正则表达式API,它String.split()是其中的一部分.

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

从这个链接回答