確定NSString是否爲空的最好方法是什麼?現在,我使用下列內容:如何確定NSString是否爲空
if (string == nil || [string isEqualToString:@""]) { // do something }
感謝您的任何意見。
確定NSString是否爲空的最好方法是什麼?現在,我使用下列內容:如何確定NSString是否爲空
if (string == nil || [string isEqualToString:@""]) { // do something }
感謝您的任何意見。
if ([string length] == 0) {
// do something
}
如果字符串爲nil
,則該消息nil
將返回零,一切仍然會很好。
不好解決
[nil length]
是0
(0==0)
是1
然後([string length] == 0)
會1
。雖然這是錯誤的。
最好的辦法是
if (![string length]) {
}
這不僅會檢查是否有任何字符串中也將返回false,如果它僅僅是空白。
NSString *tempString = [myString stringByReplacingOccurrencesOfString:@" " withString:@""];
if ([tempString length] != 0) {
//There is something in the string.
} else {
//There is nothing or it is just whitespace.
}
這隻能刪除前導空白和尾隨空白 – uchuugaka 2013-06-07 00:04:57
你知道嗎,再右吧。我做了很多實驗,並且必須複製並粘貼錯誤的代碼。它被糾正了。這樣更有效率。 – 2013-06-14 20:23:49
無論它可能是什麼,'-stringByReplacingOccurrencesOfString:withString:'不是特別有效。更好地測試你實際尋找的是什麼:非空白字符。 '!myString || [myString rangeOfCharacterFromSet:[[NSCharacterSet whitespaceCharacterSet] invertedSet] .location == NSNotFound'(在這種情況下,您必須明確測試'myString'是否爲'nil',因爲消息'nil'產生的'NSRange'不會有在'location'字段中有'NSNotFound'。) – 2013-06-15 01:42:25
+1爲您的答案。空白怎麼樣?如果你不想數它們呢?任何方便的方式? – cocoafan 2012-11-27 10:39:43
@cocoafan不簡明。如果你需要經常這樣做,我會建議在'NSString'中加入一個類別,比如'isNotEmpty',你可以進行自定義檢查。然後你可以'if([string isNotEmpty]){... }'它也會正確地處理'nil's ... – 2012-11-27 16:31:28
您可能仍然想知道爲什麼返回的長度爲0,所以在獲得零之後有時可能會檢查零。 – uchuugaka 2013-06-07 00:01:20