2011-01-13 123 views
1

我有一个小问题。似乎很容易,但我不明白它的工作。 我只想检查一个字符串是否为空。这是我到目前为止有:检查空字符串

if(mystring.text != @""){ 
    myPath = [myPath stringByAppendingString:mystring.text]; 
} 
+0

在Objective-C,比较字符串时,一定要记住使用`isEqualToString:`。像这样比较是行不通的。 – Thai 2011-01-13 12:59:00

+0

选中此项:http://jayprakashdubey.blogspot.in/2014/09/better-way-to-check-empty-string.html – 2014-09-30 12:42:34

回答

8

要将NSString比较另外一个,你会使用isEqualToString。你检查的不平等,所以这将是:

NSString *text = ...; 

if (![text isEqualToString:@""]) { 
    ... 
} 

不过说真的,因为你只是检查,如果该字符串是空的,你要像

NSString *text = ...; 

if ([text length] != 0) { 
    ... 
} 

注意,如果textnilif-声明中的代码将不会执行。这是因为[nil length]将返回0。有关更多信息,请参阅Apple文档中的"Sending Messages to nil"


我怀疑mystring.text是你的情况的NSString,所以这将是

if ([mystring.text length] != 0) { 
    myPath = [myPath stringByAppendingString:mystring.text]; 
} 
+0

谢谢。像它应该这样工作:-) – Crazer 2011-01-13 13:02:29

0

我会使用类似:

if(someString && [someString lenght]) 
    // string is not empty 
0

我平时检查,如果长度> 0表示正面测试用例,如果nil也处理。

是这样的:if ([someString length] > 0) { // do something with someString }

3

你可以试试下面的几行代码:

NSString *trimedString = [someString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 


if(trimedstr != [NSNull null]&& ![trimedstr isEqualToString:@""]) 
{ 
    if([trimedstr length]>0) 
    { 
     NSLog(@"%@", trimedstr); 
    } 
    else 
    NSLog(@"%@",@"this is empty string"); 
}