Java 內建方法

Java 本身提供幾個關於字串的判斷,會因為 null 產生 exception

isEmpty()

字串有長度(空白也算)就是 false

1
2
3
4
"".isEmpty();     //true
" ".isEmpty(); //false
"blank".isEmpty(); //false
null.isEmpty(); // NullPointerException

isBlank()

字串有長度沒文字還是 true

1
2
3
4
5
"123".isBlank();  //false
"".isBlank(); //true
" ".isBlank(); //true
null.isBlank(); // NullPointerException

StringUtils

StringUtils 用於處理 String 的,提供了比 Java String 多更多實用方法,且不會因為 null 而產生 exception
屬於 Apache (org.apache.commons.lang.StringUtils) 的操作 String 類型數據常用工具套件

StringUtils.isBlank()

  • null [o]
  • 空字串 [o]
  • 空格 [o]
1
2
3
4
5
StringUtils.isBlank(null)     // true
StringUtils.isBlank("") // true
StringUtils.isBlank(" ") // true
StringUtils.isBlank("blank") // false
StringUtils.isBlank(" blank ") // false

StringUtils.isNotBlank()

  • null [x]
  • 空字串 [x]
  • 空格 [x]
1
2
3
4
5
StringUtils.isNotBlank(null);       // false
StringUtils.isNotBlank(""); // false
StringUtils.isNotBlank(" "); // false
StringUtils.isNotBlank("not blank"); // true
StringUtils.isNotBlank(" hello "); // true

StringUtils.isEmpty()

有 length 就不是 empty

  • null [o]
  • 空字串 [o]
  • 空格 [x] 有 length
1
2
3
4
5
StringUtils.isEmpty(null)      // true
StringUtils.isEmpty("") // true
StringUtils.isEmpty(" ") // false
StringUtils.isEmpty("Empty") // false
StringUtils.isEmpty(" Empty ") // false

總結

兩者判斷方式相同,但一些資料的流動難免會有可能讀寫上產生 null 所以 StringUtils 可以藉此不會因為 NullPointerException ,比較建議作為資料驗證判斷使用。