为什么反对StringTokenizer?

为什么反对StringTokenizer?

Java文档似乎没有提到任何关于StringTokenizer然而,我却一直听说它在很久以前就被废弃了。是因为它有错误/错误,还是因为String.split()只是更好地使用整体?

我有一些代码StringTokenizer我想知道我是否应该认真考虑重构它来使用String.split(),或者是否完全出于方便和我的代码是安全的问题。


慕后森
浏览 1504回答 3
3回答

繁花如伊

从javadoc到串托卡器:StringTokenizer是由于兼容性原因而保留的遗留类,尽管在新代码中不鼓励使用它。建议任何寻求此功能的人使用String的拆分方法或java.util.regex包。如果你看看String.split()并将其与StringTokenizer,相关的区别是String.split()使用正则表达式,而StringTokenizer只使用逐字分隔字符。因此,如果我想用比单个字符更复杂的逻辑来标记字符串(例如,拆分为\r\n),我不能用StringTokenizer但我可以用String.split().

慕桂英546537

StringTokenize有个问题.。拆分必须使用regex,StringTokenizer使用字符串或CharSequence,但"a.b..".split(".")会回来{"a","b",""}以及“A.B.”中的StringTokenzer.。将只返回{“a”、“b”}这很棘手!小心点!StringTokenizer的更好和更安全的替代方案是:好多了StrongTokenizer在org.apache.common.lang3..它具有更大的灵活性或com.google.common.base.Splitter
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java