iOS 判斷字串為空你以為這麼簡單嗎?

2021-08-13 12:28:52 字數 1264 閱讀 7091

前言:

判斷字串為空:看似簡單的問題,有人會說不就使用[string isequaltostring:@""]或者更簡單的string.text == nil就行了嘛。但是並沒有考慮到其中存在的一些問題,例如當字串中存在空格或者換行時或者當請求後台資料時得到的是進行json解析的時候, 如果解析出的nsdictionary中某個key對應的value為空, 則系統會把它處理為nsnull類的單例物件。這些情況下,上面的判斷方法就不會起到作用。

具體實現:

+  (bool)isblankstring:(nsstring *)astr 

if ([astr iskindofclass:[nsnull class]]) 

nscharacterset *set = [nscharacterset whitespaceandnewlinecharacterset];

nsstring *trimmedstr = [astr stringbytrimmingcharactersinset:set];

if (!trimmedstr.length) 

return no;

}

具體解釋:**中包含了nsstring為空的三種情況:

1.nsstring物件沒有初始值。

if (!astr)
2.期望得到乙個nsstring字串, 但卻不幸遇到了nsnull。

if ([astr iskindofclass:[nsnull class]])
3.字串中除了空格和換行, 不包含任何其他字元。

對於這種情況, 可以借助字符集類nscharacterset和nsstring類的乙個方法來做判斷, 具體**如下:

// 建立乙個字符集物件, 包含所有的空格和換行字元

nscharacterset *set = [nscharacterset whitespaceandnewlinecharacterset];

// 從字串中過濾掉首尾的空格和換行, 得到乙個新的字串

nsstring *trimmedstr = [astr stringbytrimmingcharactersinset:set];

// 判斷新字串的長度是否為0

if (!trimmedstr.length) 

iOS判斷字串為空的方法

在程式中使用乙個字串之前,判斷它是否為空是很有必要的,否則程式就可能會出現bug或者崩潰.乙個nsstring字串為空,通常意味著四種情況 1.nsstring物件沒有初始值 nsstring astr 宣告了乙個字串變數,未設定初始值此時,要判斷它是否為空,只需這樣 if astr nil 我曾經...

C 字串為空判斷

字串 字串為空情況有4種,如下 string str1 string str2 string str3 string.empty string str4 null 判斷方法 c 判斷字串的string類的方法有2個,定義如下 摘要 指示指定的字串是 null 還是 system.string.emp...

判斷字串是否為空

判斷字串是否為空是在 android 開發中是最長用的乙個判斷,判斷時也經常會看到有不同的判斷方式,今天專門研究了一下,記錄下來。先定義乙個字串,private string s 這種定義方式是我們學用的方式,那麼這樣定義時在字串時,該怎麼判斷它是不是空呢?來用 驗證一下 if s null els...