天天看點

java list 去空字元串_【JAVA基礎】list和字元串判空

前言:

我們在項目中經常需要對擷取的list集合或String類型變量判空,看前輩的代碼,不同的人判空的方法不一樣,那麼,Java代碼中,對list集合和String類型變量到底該如何判空呢?

一、Java list集合判空

一般的做法是

if(list!= null && list.size() != 0){}

if(list != null&& !list.isEmpty()){}

1、list!=null:判斷是否存在list,null表示這個list不指向任何的東西,如果這時候你調用它的方法,那麼就會出現空指針異常。

2、list.isEmpty():判斷list裡是否有元素存在。

3、list.size():判斷list裡有幾個元素。

一個形象的比喻:

list!=null,判斷是不是連水杯都沒有,

list.isEmpty()和list.size(),判斷水杯裡面有沒有水。

判斷list裡是否有元素的最佳的方法是:

if(list != null&& !list.isEmpty()){

//list存在且裡面有元素

}

二、判斷java string類型資料不為空

string 類型為空的四種情況:

1、str== null:null表示這個字元串不指向任何的東西,如果這時候你調用它的方法,那麼就會出現空指針異常。

2、"".equals(str):""表示它指向一個長度為0的字元串,這時候調用它的方法是安全的。

3、str.length<= 0:字元串長度判斷

4、str.isEmpty():字元串是否為空

注意:

1、length是屬性,一般集合類對象擁有的屬性,取得集合的大小。

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

2、length()是方法,一般字元串類對象有該方法,也是取得字元串長度。

例如:字元串.length();

3、null不是對象,""是對象,是以null沒有配置設定空間,""配置設定了空間。

Java 判斷字元串是否為空的四種方法:

方法A:最多人使用的一個方法, 直覺, 友善,但效率很低;

if(s ==null &&s.equals("")){

//s為空執行

}

方法B:Java SE 6.0 才開始提供的方法,效率和方法C幾乎相等, 但出于相容性考慮, 推薦使用方法C;

if (str == null ||str.isEmpty()){

//s為空執行

}

方法C:比較字元串長度, 效率高, 是最好的一個方法;

if (str == null ||str.length() <= 0){

//s為空執行

}

方法D:這是一種比較直覺,簡便的方法,而且效率也非常的高,與方法二、三的效率差不多;

if (str == null || str ==""){

//s為空執行

}

是以,判斷一個字元串是否為空,首先就要確定他不是null,然後再判斷他的長度。

String str = xxx;

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

三、關于a!=null和null!=a的糾結

a!=null,相信大家都能了解,那麼,null!=a,是個怎樣的存在呢?做比較時,我們會将常量寫在左邊,為什麼會有null!=a這種寫法呢?

解:防止程式員做比較時,少寫“=”

java中if内的判斷語句不同與其他語言,其if内的表達式的值隻能是boolean或其裝箱類型。是以 null == a 比 xxx == a唯一的好處在java就是當a為 Boolean類型時候,書寫null == a 時悲劇的少寫一個 “=” 後 ,null = a會報錯,而 a = null 不會,此時,就可能産生空指針異常。

總結:

判空的原則:先判斷變量是否為null,再判斷是否内容

參考: