Java 空字串判斷 Null String

在 Java 中字串的空有兩種

  1. 字串物件本身為空
  2. 字串的內容為空
String str1 = null;
String str2 = "";

既然如此,也就需要兩種判斷方式

判斷 null 較為單純

str1 == null

判斷空值有幾種不同的方式

str2.isEmpty()
str2.isBlank()
str2.length() == 0
str2.equals("")
"".equals(str2)

實務上往往需要同時進行兩種判斷,為了避免 NullPointerException

方法一:藉由邏輯運算子的特性,先判斷 null,即可忽略下一組運算

str != null && !str.isEmpty()

//可比較
str != null & !str.isEmpty() //NullPointerException

方法二:使用字串常數比較

str != null & !"".equals(str)

當然如果懶得思考,可以直接死記永遠不會錯的寫法

str != null && !"".equals(str)

也可以自己定義一個判斷方法

public boolean isNullString(String string) {
    return string == null || string.equals("");
}