判斷字符串String是否爲空問題

1、判斷一個字符串str不爲空的方法有:java

  一、str == null;數組

  二、"".equals(str);安全

  三、str.length <= 0;spa

  四、str.isEmpty();指針

  注意:length是屬性,通常集合類對象擁有的屬性,取得集合的大小。code

  例如:數組。length就是取得數組的長度。對象

  length()是方法,通常字符串類對象有該方法,也是取得字符串長度。blog

  例如:字符串。length();字符串

  說明:get

  一、null表示這個字符串不指向任何的東西,若是這時候你調用它的方法,那麼就會出現空指針異常。

  二、""表示它指向一個長度爲0的字符串,這時候調用它的方法是安全的。

  3.、null不是對象,""是對象,因此null沒有分配空間,""分配了空間,例如:

  String str1 = null; str引用爲空

  String str2 = ""; str引用一個空串

  str1還不是一個實例化的對象,而str2已經實例化。

  對象用equals比較,null用等號比較。

  若是str1=null;下面的寫法錯誤:

  if(str1.equals("")||str1==null){ }

  正確的寫法是 if(str1==null||str1.equals("")){ //因此在判斷字符串是否爲空時,先判斷是否是對象,若是是,再判斷是否是空字符串 }

  4. 因此,判斷一個字符串是否爲空,首先就要確保他不是null,而後再判斷他的長度。

  String str = xxx;

  if(str != null && str.length() != 0) { }

  2、如下是java 判斷字符串是否爲空的四種方法:

  四種方法執行的效率分別以下:

  JudgeString1耗時:625ms

  JudgeString2耗時:125ms

  JudgeString3耗時:234ms

  JudgeString4耗時:109ms

 1  /**
 2 
 3   * 判斷字符串是否爲空的效率問題
 4 
 5   */
 6 
 7 public class JudgeStringIsEmptyOrNot {
 8 
 9   public static void main(String[] args) {
10 
11       JudgeString1("w_basketboy", 10000);
12 
13       JudgeString2("w_basketboy", 10000);
14 
15       JudgeString3("w_basketboy", 10000);
16 
17       JudgeString4("w_basketboy", 10000);
18 
19   }
20 
21   /**
22 
23   * 方法一: 最多人使用的一個方法, 直觀, 方便, 但效率很低;
24 
25   * 方法二: 比較字符串長度, 效率高, 是最好的一個方法;
26 
27   * 方法三: Java SE 6.0 纔開始提供的方法, 效率和方法二幾乎相等, 但出於兼容性考慮, 推薦使用方法二;
28 
29   * 方法四: 這是一種比較直觀,簡便的方法,並且效率也很是的高,與方法2、三的效率差很少;
30 
31   */
32 
33 public static void JudgeString1(String str, long num) {
34   long startTiem = System.currentTimeMillis();
35   forint i = 0; i < num; i++) {
36          forint j = 0; j < num; j++) {
37           if (str == null || "".equals(str)) {
38           }
39       }
40   }
41     long endTime = System.currentTimeMillis();
42   System.out.println("function1耗時:" + (endTime - startTiem) + "ms");
43 
44 }
45 
46 public static void JudgeString2(String str, long num) {
47   long startTiem = System.currentTimeMillis();
48   forint i = 0; i < num; i++) {
49       forint j = 0; j < num; j++) {
50           if (str == null || str.length() <= 0) {
51           }
52       }
53   }
54   long endTime = System.currentTimeMillis();
55   System.out.println("function4耗時:" + (endTime - startTiem) + "ms");
56 }
57 
58 public static void JudgeString3(String str, long num) {
59   long startTiem = System.currentTimeMillis();
60   forint i = 0; i < num; i++) {
61       forint j = 0; j < num; j++) {
62           if (str == null || str.isEmpty()) {
63 
64           }
65       }
66   }
67   long endTime = System.currentTimeMillis();
68   System.out.println("function3耗時:" + (endTime - startTiem) + "ms");
69 
70   }
71 
72 public static void JudgeString4(String str, long num) {
73   long startTiem = System.currentTimeMillis();
74   forint i = 0; i < num; i++) {
75       forint j = 0; j < num; j++) {
76           if (str == null || str == "") {
77           }
78       }
79   }
80   long endTime = System.currentTimeMillis();
81   System.out.println("function4耗時:" + (endTime - startTiem) + "ms");
82   }                        
相關文章
相關標籤/搜索