java字符串操作性能比较

今天工作时遇到一个问题,就是在匹配某个字符串的最后是不是有SAAS,然后发现下面几个的性能相差极大。

比较contains,endWith,matchs,substring的性能

packagecom.zhou.utils.test;

publicclassContentTest {

publicstaticvoidmain(String[]args) {

Stringa="dasfnjkdsbnfjdksbgjbdfgjhbdfjfdhjSAAS";

getc(a);

gete(a);

getm(a);

gets(a);

}

publicstaticvoidgetc(Stringa){

longstart=System.nanoTime();

System.out.println(start);

if(a.contains("SAAS")){

System.out.println("SAAS");

}

longend=System.nanoTime();

System.out.println(end);

System.out.println("=============contains:"+(end-start));

}

publicstaticvoidgete(Stringa){

longstart=System.nanoTime();

System.out.println(start);

if(a.endsWith("SAAS")){

System.out.println("SAAS");

}

longend=System.nanoTime();

System.out.println(end);

System.out.println("=============endsWith:"+(end-start));

}

publicstaticvoidgetm(Stringa){

longstart=System.nanoTime();

System.out.println(start);

if(a.matches("SAAS")){

System.out.println("SAAS");

}

longend=System.nanoTime();

System.out.println(end);

System.out.println("=============matches:"+(end-start));

}

publicstaticvoidgets(Stringa){

longstart=System.nanoTime();

System.out.println(start);

if(a.substring(a.length()-4,a.length()).equals("SAAS")){

System.out.println("SAAS");

}

longend=System.nanoTime();

System.out.println(end);

System.out.println("=============substring:"+(end-start));

}

}

打印控制台的输出:

第一次

25395304228151

SAAS

25395304671292

=============contains:443141

25395305007672

SAAS

25395305092995

=============endsWith:85323

25395305175370

25395307892667

=============matches:2717297

25395308257130

SAAS

25395308401132

=============substring:144002

第二次

25756697567057

SAAS

25756697873127

=============contains:306070

25756698037838

SAAS

25756698114603

=============endsWith:76765

25756698198406

25756699453608

=============matches:1255202

25756699592423

SAAS

25756699682295

=============substring:89872

由上面可以看出,endWith的性能比其他几个,高出好几倍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 1,426评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 我呼吸安静的坐在门口
    邦怀小圆圈阅读 253评论 1 0