2011-10-26 120 views

回答

1

JavaDoc

的StringTokenizer是保留兼容性 原因,虽然它的使用是在新代码气馁的遗留类。建议 任何寻求此功能的人都使用字符串 或java.util.regex包的split方法代替。

+0

正如我在我的答案中所述,String.split在高负载应用程序中相当慢。 StringUtils.split的速度更快。 – SirVaulterScoff

+0

我认为java.util.regex.Pattern类的split方法会比两个更好 – sns

+0

它比StringUtils.split慢10倍左右。 – SirVaulterScoff

1

一个大区别是,扫描仪可以对输入流进行操作,所以你并不需要有它在内存中的所有一次(在某些情况下甚至是不可能的,例如当连续读取用户输入一个控制台)。

2

从StringTokenizer类的javadoc

string tokenizer类允许应用程序将字符串分解成 令牌.... StringTokenizer的方法不中 标识符,数字区分,并引述串...

来自扫描仪的Javadoc

一个简单的文本扫描器可以解析原始典型值es和字符串 使用正则表达式。

所以扫描仪不同的StringTokenizer有像nextInt,nextBoolean等 方法虽然扫描仪是有用的在某些情况下,当你需要分析用户输入containig数字的StringTokenizer在大多数情况下,可以用org.apache.commons更换。 lang.StringUtils.split - 它不使用正则表达式,速度非常快。

1

扫描仪设计用于需要解析字符串,提取不同类型数据的情况。如果要从程序之外的源解析文本数据,例如从文件或用户解析文本数据,那就是扫描仪派上用场。

StringTokenizer总是在那里。它是所有人中速度最快的,但类似枚举的习语看起来可能不像其他人那样优雅。

拆分在JDK 1.4上存在。因为它可以从String类中调用,所以比标记器慢,但更易于使用。

相关问题