我有一个小问题。似乎很容易,但我不明白它的工作。 我只想检查一个字符串是否为空。这是我到目前为止有:检查空字符串
if(mystring.text != @""){
myPath = [myPath stringByAppendingString:mystring.text];
}
我有一个小问题。似乎很容易,但我不明白它的工作。 我只想检查一个字符串是否为空。这是我到目前为止有:检查空字符串
if(mystring.text != @""){
myPath = [myPath stringByAppendingString:mystring.text];
}
要将NSString
比较另外一个,你会使用isEqualToString
。你检查的不平等,所以这将是:
NSString *text = ...;
if (![text isEqualToString:@""]) {
...
}
不过说真的,因为你只是检查,如果该字符串是空的,你要像
NSString *text = ...;
if ([text length] != 0) {
...
}
注意,如果text
是nil
,if
-声明中的代码将不会执行。这是因为[nil length]
将返回0
。有关更多信息,请参阅Apple文档中的"Sending Messages to nil"。
我怀疑mystring.text
是你的情况的NSString
,所以这将是
if ([mystring.text length] != 0) {
myPath = [myPath stringByAppendingString:mystring.text];
}
谢谢。像它应该这样工作:-) – Crazer 2011-01-13 13:02:29
我会使用类似:
if(someString && [someString lenght])
// string is not empty
我平时检查,如果长度> 0表示正面测试用例,如果nil也处理。
是这样的:if ([someString length] > 0) { // do something with someString }
你可以试试下面的几行代码:
NSString *trimedString = [someString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if(trimedstr != [NSNull null]&& ![trimedstr isEqualToString:@""])
{
if([trimedstr length]>0)
{
NSLog(@"%@", trimedstr);
}
else
NSLog(@"%@",@"this is empty string");
}
在Objective-C,比较字符串时,一定要记住使用`isEqualToString:`。像这样比较是行不通的。 – Thai 2011-01-13 12:59:00
选中此项:http://jayprakashdubey.blogspot.in/2014/09/better-way-to-check-empty-string.html – 2014-09-30 12:42:34