确定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