Java-java分割字符串中更高效的方法!

Java-java分割字符串中更高效的方法!

瑾兮 发布于 2017-10-27 字数 468 浏览 1384 回复 4

据悉:java中将某个原始字符串分割成一组小字符串有以下三种可靠方法:
方法一:String.split();【此函数用法简单、功能强大】。
方法二:StringTokenizer类 【此类是JDK中提供用来处理字符串分割子串的工具类】。
方法三:自定义方法【使用String的两个方法--indexOf()和subString()的结合】

使用时:效率和性能缺陷分别怎么样呢?

懵懂的我只晓得效率是以此提高、还望老手给与更加有力的说明!

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夜无邪 2017-10-27 4 楼

个人认为没有必要去追求字符串分隔的效率。如果硬要说哪个好的话,我觉得split()不错,能够通过正则分隔字符串。

虐人心 2017-10-27 3 楼

这还是要看应用场景。网上很多直接对比他们性能的测试,很多都不对的。

如果你想要获取匹配结果的全部字符集,当然首选split(),应为它的作用就是返回匹配的String[]数组

如果你只是获取确定index的匹配记录的话,首选方法三

其他的应用场景,可以用StringTokenizer来实现,例如获取匹配字符串总数,枚举匹配字符串等等

希望对你有帮助 :>

ps:详细可以看看它们的源码

甜柠檬 2017-10-27 2 楼

其实这三个方法,没有特别大的性能差别.不要事情做的这么绝.String 其实就是char数组,至于分割,只是new了几个新的String.

你如果硬要说最高效率的,肯定是"方法三"."方法一"中掺杂了正则表达式的环节."方法二"就谈不上效率了,构造函数就浪费了很多的操作,还要一个一个token的折腾,没有可比性.

我觉得你的出发点就有问题,不是每种接口都要对比这种毫无意义的效率的,接口首先是人用的,要用的灵活,用的合适.其次才是机器用的.另外多读读String的java源码,你会明白一切

夜无邪 2017-10-27 1 楼

如果对性能极度追求你的话,indexOf的方法要高于StringTokenizer类,StringTokenizer类又要高于split方法!但是StringTokenizer是一个类,它存在兼容问题,所以不是特殊问题的话最好还是不用。三者的区别