JAVA如何进行高效的进行字符串拆分 您所在的位置:网站首页 java拆分string JAVA如何进行高效的进行字符串拆分

JAVA如何进行高效的进行字符串拆分

2023-12-13 10:54| 来源: 网络整理| 查看: 265

题目: 如何最高效率最快的按空格进行拆分如下字符串,获得最长非空字符串的长度!

“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

一

实验第二次用时48

二

实验第三次用时48

在这里插入图片描述

二、用StringTokenizer(** 结果-三次平均:31.3333**) /** * 方法二 StringTokenizer * 网上传说拆分字符串很快 * @param msg * @return */ public static int stringTokenizerMethod (String msg) { StringTokenizer stringTokenizer = new StringTokenizer(msg," "); while (stringTokenizer.hasMoreElements()) { lastNum = stringTokenizer.nextElement().toString().length(); if ( lastNum > maxNum ) { maxNum = lastNum; } } return maxNum; } 实验第一次用时32

一

实验第二次用时26

二

实验第三次用时36

三

三、直接拆成字节数组,然后循环判断取最长(** 结果-三次平均:8.6666**) /** * 方法三 将字符串拆分成字节数组,遍历比大小 * 暂时咱们给他起名叫Esay方法 * @param msg * @return */ public static int esayMethod (String msg) { char[] newChar = msg.toString().toCharArray(); for(int i = 0;newChar.length >i; i++){ lastNum = i - beginNum; if(newChar[i] == ' ' ){ if(lastNum != 0){ if(lastNum > maxNum){ maxNum =lastNum; } beginNum = i; } } } return maxNum-1; }

实验第一次用时10 一 实验第二次用时8 二 实验第三次用时8 三

执行代码如下:

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 实验室设备网 版权所有