JAVA如何进行高效的进行字符串拆分 | 您所在的位置:网站首页 › java拆分string › JAVA如何进行高效的进行字符串拆分 |
题目:
如何最高效率最快的按空格进行拆分如下字符串,获得最长非空字符串的长度!
“aaaa ccsdf we iii ldkjl eee” ** 备注:有说用逗号隔开的字符串,或者别的什么隔开的字符串等等,都一样。** 参赛选手介绍:1号选手split 号称史上最慢,来自java.lang.String家族,但用着就是香!真香 2号选手StringTokenier来自java.util家族,皇室血统,公认很快!真的快吗? 3号选手来自草根无名无姓,暂时叫EsayMethod,我自己想的也不是啥算法,思想是一次遍历出结果,时间复杂度O(n)! 本次实验需要拆分字符串长度为540000便于计算时间。 实际是aa bc aaaa aaa dd eeee hhhhhhhi www wee rrr rrr 33333 这样字符串循环拼接一万次。 一、 用split (** 结果-三次平均:44.6666**) /** * 方法一 split拆分遍历法 * 被人吐槽慢,咱今天就试试到底真慢假慢 * @param msg * @return */ public static int splitMethod (String msg) { String[] strArr = msg.split(" "); for (String str : strArr) { lastNum = str.length(); if(lastNum > maxNum) { maxNum =lastNum; } } return maxNum; } 实验第一次用时38实验第一次用时10 执行代码如下: private static int maxNum = 0; private static int beginNum = 0; private static int lastNum = 0; public static void main(String[] args) { String str ="aa bc tttt aaa dd eeee hhhhhhhi www wee rrr rrr 33333 "; StringBuffer sb = new StringBuffer(); for (int n = 0 ;n |
CopyRight 2018-2019 实验室设备网 版权所有 |