空串
空串""是長度為0的字符串。可以調用以下代碼檢查字符串是否為空:
if(str.length() == 0) 或 if(str.equals(""))
空串是一個java對象,有自己的串長度(0)和內容(空)。
null
不過,String變量還可以存放一個特殊的值,名為null,這表示目前沒有任何對象與該變量關聯。要檢查一個字符串是否為null,要使用以下條件:
if(str ==null)
有時要檢查一下字符串既不是null也不為空串,這種情況下就需要使用以下條件:
if(str != null && str.length() != 0) 或 if(str != null && "".equals(str))
注意:s != null的順序必須出現在前面,不然會拋出java.lang.NullPointerException.即空指針異常。
isEmpty()
分配了內存空間,值為空,是絕對的空,是一種有值(值 = 空)
""
分配了內存空間,值為空字符串,是相對的空,是一種有值(值 = 空字符串)
null
是未分配內存空間,無值,是一種無值(值不存在)
isEmpty的源碼如下:
就是說只要String的文本數量為0就返回true,而""里面文本數量就是為0。
""和null的區別可以比喻為:
你要喝水,str != null 用於判斷是不是連水杯都沒有,str.length() != 0或str.isEmpty()是用於判斷水杯里面有沒有水。