判斷一個字符串是否爲空(null)或者是空字符串(“”)的方法總結

第一步:理解null和""的區別

  • null表示這個字符串在棧中沒有被實例化,沒有任何指向,因此在堆中沒有分配內存空間。如果要調用這個字符串的方法會出現空指針異常 `String str = null`。判斷一個字符串是否是null 用 == 。
  • ""在堆中分配了內存空間。 判斷一個對象是否是空“” 用eques()。

如果我們使用"String str = new String()",這時的str是一個對象,默認是一個"",其已經被實例化。(用==去比較兩個字符串其實是內存地址的比較)

 

第二步:以下是java 判斷字符串是否爲空的四種方法

  1. 最多人使用的一個方法, 直觀, 方便, 但效率低: if(s == null || s.equals(""));
  2. 比較字符串長度, 效率高: if(s == null || s.length() == 0);
  3. Java SE 6.0 纔開始提供的方法, 效率和方法二幾乎相等, 但出於兼容性考慮, 推薦使用方法二. if(s == null || s.isEmpty());
  4. 這是一種比較直觀,簡便的方法,而且效率也非常的高,與方法二、三的效率差不多: if (s == null || s == "")

 

或者直接用:

if(StringUtils.isEmpty(s))

走進StringUtils.isEmpty()源碼看一下:

public static boolean isEmpty(@Nullable Object str) {
    return str == null || "".equals(str);
}

會發現其實就是方法一(*-*)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章