判斷字串是否為空是在 android 開發中是最長用的乙個判斷,判斷時也經常會看到有不同的判斷方式,今天專門研究了一下,記錄下來。
先定義乙個字串,
private string s;
這種定義方式是我們學用的方式,那麼這樣定義時在字串時,該怎麼判斷它是不是空呢?來用**驗證一下:
if (s == null)else
打出的來 log 是這樣的:
可以看到這個時候,如果 s 沒有賦值,它就為 null。
現在做乙個小改動,這樣定義字串,
private string s = new string();
這時我們這這樣來判斷,
if (s == null)else
if (s.isempty())else
這樣打出來的 log 是這樣的:
當用 new 關鍵字建立字串物件時,如果 s 沒有賦值,那麼這時的 s 並不是 null,而它的 isempty()方法為 true,這時進入到 isempty()方法中去看看,
/**
* returns if, and only if, is .
* *@return if is , otherwise
* *
*@since 1.6
*/public
boolean
isempty() with or without string compression enabled.
return count == 0;
}
可以看到只有當字串的長度為 0 時,才會返回 true。所有用 new 關鍵字建立的字串物件在沒有賦值的情況下它的長度是 0 ,但並不是 null。
還有乙個方法是用 textutils.isempty() 這個方法來判斷
if (textutils.isempty(string))
進入到這個方法裡面去看一看:
/**
* returns true if the string is null or 0-length.
*@param str the string to be examined
*@return true if str is null or zero length
*/public
static
boolean
isempty(@nullable charsequence str)
可以看到這個方法是當字串為 null 或長度為 0 時,返回 true,與 string 的 isempty()方法比起來,這個方法更嚴謹一些,所以可以盡量使用這個方法來避免字串的空指標異常。
還有乙個經常用的判斷方法就是 if(s == 「」),這個就很簡單了,就不多言了。
總結:當沒有用 new 關鍵字建立字串物件,或是沒有 s = 「」,這兩種建立方式的話,是不能用 isempty()方法來判斷的,那樣的話會報空指標異常。所以在判斷字串是否為空時要注意這一點,避免報錯。
判斷字串String是否為空
1 str null 2 equals str 3 str.length 4 str.isempty 注意 length是屬性,一般集合類物件擁有的屬性,取得集合的大小。例如 陣列.length就是取得陣列的長度。length 是方法,一般字串類物件有該方法,也是取得字串長度。例如 字串.lengt...
python 判斷字串是否為空
python strip 方法用於 移除字串頭尾 指定的字元 預設為 空格或換行符 或字串行。注意 該方法只能刪除開頭或是結尾的字元,不能刪除中間部分的字元。strip 方法語法 str.strip chars 返回移除字串頭尾指定的字元生成的新字串。補充 字串str還有另外兩種類似的方法lstri...
C 判斷字串是否為空
c 中問號可以判斷字元 引用 事件等是否為空,比如 action?invoke 判斷action是否為空,不為空則呼叫,這樣就避免了用if語句進行是否為空的判斷。開發中會遇到解析json的情況 jsondata.code jslist code jsondata.version jslist ver...