IOS:如何验证一个字符串是否为空字符串?

5

有没有一种方法可以验证NSString是否没有字符?没有字符的字符串示例可以是:

@""或@" "或@"\n "或@"\n\n ",我希望将这些字符串视为空字符串并打印一个nslog,告诉我这些字符串是空的,我应该使用什么样的控件?

2个回答

7
你可以使用这个测试:
if ([[myString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0) {
    // The string is empty
}

+1 我不知道这个功能,你的答案比我的好。:) - WendiKidd
@WendiKidd谢谢您!稍微离题一下,我不知道是谁给您的答案投了反对票,但我想我知道为什么:您使用了字符串常量@" "@"\n",而没有使用字符常量' ''\n';修复这个问题应该能让您的解决方案完全工作。 - Sergey Kalinichenko
啊!我真是太糊涂了,没有注意到!谢谢你指出来。我已经修复了,谢谢 :) - WendiKidd

0
你可以遍历字符串中的每个字符,并检查它是否为空格(" ")或换行符("\n")。如果不是,则返回false。否则,如果你搜索整个字符串并且没有返回false,则它是“空的”。
类似这样:
NSString* myStr = @"A STRING";
for(int i = 0; i < [myStr length]; i++)
{
    if(!(([myStr characterAtIndex:i] == @' ') || ([myStr characterAtIndex:i] == @'\n')))
    {
        return false;
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接