java字符串操作性能比較

今天工作時(shí)遇到一個(gè)問題,就是在匹配某個(gè)字符串的最后是不是有SAAS,然后發(fā)現(xiàn)下面幾個(gè)的性能相差極大。

比較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));

}

}

打印控制臺(tái)的輸出:

第一次

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的性能比其他幾個(gè),高出好幾倍

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評(píng)論 19 139
  • 一、 1、請(qǐng)用Java寫一個(gè)冒泡排序方法 【參考答案】 public static void Bubble(int...
    獨(dú)云閱讀 1,498評(píng)論 0 6
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,706評(píng)論 18 399
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,921評(píng)論 0 33
  • 我呼吸安靜的坐在門口
    邦懷小圓圈閱讀 300評(píng)論 1 0

友情鏈接更多精彩內(nèi)容