检查空字符串

时间:2011-01-13 12:40:26

标签: iphone objective-c nsstring

我有一个小问题。看起来很简单,但我没有让它工作。 我想要的只是检查一个字符串是否为空。这是我到目前为止所做的:

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

4 个答案:

答案 0 :(得分:8)

要将NSString与另一个进行比较,您可以使用isEqualToString。你正在检查不平等,所以它会是:

NSString *text = ...;

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

但实际上,既然你只是检查字符串是否为空,那么你需要像

这样的东西
NSString *text = ...;

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

请注意,如果textnil,则if - 语句中的代码将不会执行。这是因为[nil length]将返回0。有关详细信息,请参阅Apple文档中的"Sending Messages to nil"


我怀疑mystring.text在你的情况下是NSString,所以它会是

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

答案 1 :(得分: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");
}

答案 2 :(得分:0)

我会使用类似的东西:

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

答案 3 :(得分:0)

我通常检查长度是否> 0表示正测试用例,如果为nil也会处理。

类似于:if ([someString length] > 0) { // do something with someString }