问题背景

最近,在处理高维数组的运算时,需要从txt中读取文本,并使用split()函数将每一个行的文本转化成数组。如下所示:

1.0 0.0 0.0 0.0 0.0 0.0 0.0 …

由于该数组的维度高,最开始直接使用的是String.split()函数做处理,但运行速度过慢。后面,使用StringUtils.split()函数做替代。

下面来比较这一些函数的效率。

效率比较

StringUtils.split()来自于Apache Commons Lang库,可通过下面的网址下载:

https://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.10

如下为测试程序:

package sparsetest;import org.apache.commons.lang3.StringUtils;public class Test {public static void main(String[] args) {int N = 10000;StringBuilder sb = new StringBuilder();for (int i = 0; i < N; i++) {sb.append("0.0 ");}String s = sb.toString();long startTime = System.currentTimeMillis(); //获取开始时间for (int i = 0; i < 1000; i++) {String[] cS = s.split(" ");}long endTime = System.currentTimeMillis(); //获取结束时间System.out.println("split耗时:" + (endTime - startTime) + "ms"); long startTime1 = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) {String[] cS1 =  StringUtils.split(s," "); }long endTime1 = System.currentTimeMillis(); System.out.println("StringUtils split耗时:" + (endTime1 - startTime1) + "ms");}}

执行该程序控制台输出结果为:

Java中String.split和StringUtils.split性能比较相关推荐

  1. Java中String字符串截取几种方法(substring,split)

    Java中String字符串截取几种方法 substring,split 这是一个Java中的String的基础用法的演示. 下面通过代码对大家进行讲解 substring 这里用来ndexOf,la ...

  2. JAVA中String的split方法

    我的个人网站: http://riun.xyz 以下源码版本:JDK1.8 简介 Java 中 String 的 split 方法可以将字符串根据指定的间隔进行切割,例如字符串 str = " ...

  3. Java中String对象的replaceAll方法调用性能优化小技巧

    Java中String对象的replaceAll方法调用性能优化小技巧 0x01 Java中String对象的replaceAll方法调用性能优化小技巧 1.1 What? 1.2 Why? 1.3 ...

  4. java中String的常用方法

    java中String的常用方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); int len ...

  5. Java中String类的方法及说明

    String : 字符串类型 一.构造函数      String(byte[ ] bytes):通过byte数组构造字符串对象.      String(char[ ] value):通过char数 ...

  6. 【转载】Java中String类的方法及说明

    转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数      String ...

  7. Java中String 字符串与List<String>互转

    Java中String 字符串与List互转 大家好,我是酷酷的韩~ 1.String转List public static void main(String[] args) {String aa = ...

  8. Java中String是个什么类型?

    Java中String是个什么类型 Java中的八大基本数据类型 String 是个什么类型 String常见的方法 Java中的八大基本数据类型 面试官的套路 Java中的数据类型分为四类 1.整型 ...

  9. 在Java中使用final关键字可以提高性能吗?

    本文翻译自:Does use of final keyword in Java improve the performance? In Java we see lots of places where ...

  10. java中String相等问题

    判断两个字符串是否相等的问题.在编程中,通常比较两个字符串是否相同的表达式是"==",但在java中不能这么写.在java中,用的是equals(); 例:A字符串和B和字符串比较 ...

最新文章

  1. Asp.net 用户控件和自定义控件注册
  2. JZOJ 4.1 B组 删数
  3. 利用IShellExecuteHook接口对程序监控
  4. 瞿菡云计算机,“国家资助 伴我成长”——我校学生王丽娜、肖云菡荣获中职教育“国家奖学金”事迹材料...
  5. 大数据集群部署时ssh的公钥和似钥作用汇总
  6. HTML+CSS+JS实现 ❤️3D方块弹跳动画特效❤️
  7. Linux: xclip,pbcopy,xsel用法 terminal 复制粘帖 (mac , ubuntu)
  8. 深度优先搜索算法的通用解法
  9. 【揭秘】我几乎面了所有知名公司的算法岗位
  10. Hadoop完全分布式 小bug -no.1 为啥我的集群只显示一个datanode!
  11. java给文件777权限_一次心惊肉跳的服务器误删文件的恢复过程
  12. 调试Javascript代码(浏览器F12)
  13. word 文档规范,比如标题、正文的字号
  14. 实验五 集线器和交换机的区别
  15. 【项目实践】DCGAN绘制理想女朋友照片实践,从爬虫到生产女友
  16. 《秘密》之你的秘密和生命的秘密
  17. 电商APP的流量及用户运营分析
  18. 百度CEO李彦宏为何这么拼
  19. 智云通CRM:如何发现高附加值客户,让他们直接按原价购买?
  20. cam、ts、tc、scr等电影版本标识的解析及区别(中英文对照版)

热门文章

  1. TypeScript 元组(Tuple)
  2. DataX离线数据同步工具/平台
  3. Oracle数据恢复、数据库恢复、灾难恢复专题
  4. Windows下的包管理工具scoop
  5. C、C++和C#区别概述
  6. 【熊猫多模式站群开发日志】流程总览
  7. 封装 Vue.js 组件库
  8. C#LeetCode刷题之#575-分糖果​​​​​​​(Distribute Candies)
  9. houdini_通过卡通了解CSS Houdini的指南
  10. macos必做的设置_如何在MacOS上设置PHP,CaddyServer和Kirby —以及为什么要这样做