1. 程式人生 > >判斷一個字串是否為空(null)或者是空字串(“”)的方法和總結

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

首先需要理解null和“”的區別

null表示這個字串在棧中沒有任何指向因此在堆中沒有分配記憶體空間,如果要呼叫這個字串會出現空指標異常 `String str = null`;這個str是空,沒有被例項化,在棧中沒有任何指向。 null表示這個字串沒有任何指向,因為null沒有分配空間,“”在堆中分配了記憶體空間。 判斷一個物件是否是空“” 用eques() 判斷一個字串是否是null 用 == 如何我們`String str = new String()`這時的str是一個物件,已經被例項化,str預設是一個“”的。 用==去比較兩個字串其實是記憶體地址的比較。

以下是java 判斷字串是否為空的四種方法

方法一: 最多人使用的一個方法, 直觀, 方便, 但效率很低: if(s == null || s.equals(""));

方法二: 比較字串長度, 效率高, 是我知道的最好一個方法: if(s == null || s.length() == 0);

方法三: Java SE 6.0 才開始提供的方法, 效率和方法二幾乎相等, 但出於相容性考慮, 推薦使用方法二. if(s == null || s.isEmpty());

方法四: 這是一種比較直觀,簡便的方法,而且效率也非常的高,與方法二、三的效率差不多: if (s == null || s == "");

使用StringUtils進行判斷

StringUtils.isBlank(null) = true

StringUtils.isBlank("") = true

StringUtils.isBlank(" ") = true

StringUtils.isBlank("bob") = false

StringUtils.isBlank(" bob ") = false

StringUtils.isBlank(null) = true

StringUtils.isBlank("") = true

StringUtils.isBlank(" ") = true

StringUtils.isBlank("bob"

) = false

StringUtils.isBlank(" bob ") = false 

給大家推薦一本好的學習java的面試基礎的內容::