Java中
String 包裝類定義了三個方法可以判斷為不為空
str1.isEmpty()
str1.length()
str1.equals()
但是,如果 str1 是 null 直接調用上面三種方法就會出現空指針異常,如下圖所示:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL1MTO4IjN1IDMzITMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
這是因為 null 表示這個字元串不指向任何的東西,如果這時候你調用它的方法,那麼就會出現空指針異常。
null不是對象,""是對象,是以 null 沒有配置設定空間,"" 配置設定了空間,
例如:
String str1 = null; //str1 引用為空
String str2 = ""; //str2 引用一個空串
str1 還不是一個執行個體化的對象,而 str2 是已經執行個體化的對像
是以,對象用 equals 比較,null 用等号比較
ps:在判斷字元串是否為空時,先判斷是不是對象(即不為null);如果是,再判斷是不是空字元串
例如:
if( str1.equals("") || str1==null ){} //錯誤寫法
if( str1==null || str1.equals("") ){} //正确寫法
if( str1==null || str1.isEmpty() ){} //正确寫法(推薦)
if( str1==null || str1.length()<=0 ){} //正确寫法
轉載請注明出處。