为了账号安全,请及时绑定邮箱和手机立即绑定

为什么反对StringTokenizer?

为什么反对StringTokenizer?

慕后森 2019-07-20 14:15:10
为什么反对StringTokenizer?Java文档似乎没有提到任何关于StringTokenizer然而,我却一直听说它在很久以前就被废弃了。是因为它有错误/错误,还是因为String.split()只是更好地使用整体?我有一些代码StringTokenizer我想知道我是否应该认真考虑重构它来使用String.split(),或者是否完全出于方便和我的代码是安全的问题。
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

从javadoc到串托卡器:

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

如果你看看String.split()并将其与StringTokenizer,相关的区别是String.split()使用正则表达式,而StringTokenizer只使用逐字分隔字符。因此,如果我想用比单个字符更复杂的逻辑来标记字符串(例如,拆分为\r\n),我不能用StringTokenizer但我可以用String.split().


查看完整回答
反对 回复 2019-07-20
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

StringTokenize有个问题.。

拆分必须使用regex,StringTokenizer使用字符串或CharSequence,

"a.b..".split(".")会回来{"a","b",""}

以及“A.B.”中的StringTokenzer.。将只返回{“a”、“b”}

这很棘手!小心点!

StringTokenizer的更好和更安全的替代方案是:

好多了StrongTokenizerorg.apache.common.lang3..它具有更大的灵活性或

com.google.common.base.Splitter


查看完整回答
反对 回复 2019-07-20
  • 3 回答
  • 0 关注
  • 1503 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信