java判斷字符串為空的5種方法及其效率


public class StringEmptyCompare {
   String s = "";
   //循環一億次,比較效率
   long n = 100000000;   
   //方法1
   private void function1() {
     //存下起始時間
     long startTime = System.currentTimeMillis();
     for (int i = 0; i < n; i ++) {
       if (s == null || s.equals("")) ;
     }
     //存下結束時間
     long endTime = System.currentTimeMillis();
     System.out.println("方法1用時:" + (endTime - startTime) + "ms");
   }
   //方法2
   private void function2() {
     long startTime = System.currentTimeMillis();
     for (int i = 0; i < n; i ++) {
       if (s == null || s.length() < 1) ;
     }
     long endTime = System.currentTimeMillis();
     System.out.println("方法2用時:" + (endTime - startTime) + "ms");
   }
   //方法3
   private void function3() {
     long startTime = System.currentTimeMillis();
     for (int i = 0; i < n; i ++) {
       if (s == null || s.isEmpty()) ;
     }
     long endTime = System.currentTimeMillis();
     System.out.println("方法3用時:" + (endTime - startTime) + "ms");
   }
 //方法4
   private void function4() {
     long startTime = System.currentTimeMillis();
     for (int i = 0; i < n; i ++) {
       if (StringUtils.isBlank(s)) ;
     }
     long endTime = System.currentTimeMillis();
     System.out.println("方法4-StringUtils.isBlank用時:" + (endTime - startTime) + "ms");
   }
 //方法4
   private void function5() {
     long startTime = System.currentTimeMillis();
     for (int i = 0; i < n; i ++) {
       if (StringUtils.isEmpty(s)) ;
     }
     long endTime = System.currentTimeMillis();
     System.out.println("方法5-StringUtils.isEmpty用時:" + (endTime - startTime) + "ms");
   }
   public static void main(String[] args) {
     StringEmptyCompare sec = new StringEmptyCompare();
     sec.function1();
     sec.function2();
     sec.function3();
     sec.function4();
     sec.function5();
   }
 }
結果:

方法1用時:1156ms
方法2用時:563ms
方法3用時:671ms
方法4-StringUtils.isBlank用時:1344ms
方法5-StringUtils.isEmpty用時:719ms

 

可以看出,方法2效率最高;方法3與方法2效率上相差不大;方法4效率最低。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM