撇号Unichar比较问题

时间:2011-01-30 20:06:48

标签: iphone objective-c sdk nsstring unichar

我目前正在查看像这样的字符串部分;

            if (thisChar == 'a')
            [self a];

        else if (thisChar == 'b')
            [self b];

        else if (thisChar == 'c')
            [self c];

.........

        else if (thisChar == '0')
        [self zero];

    else if (thisChar == '1')
        [self one];

    else if (thisChar == '2')
        [self two];

    else if (thisChar == '3')
        [self three];

.........

            else if (thisChar == '.')
        [self period];

    else if (thisChar == ',')
        [self comma];

    else if (thisChar == '?')
        [self qmark];

当我来到

时,问题就出现了
else if (thisChar == ''')
        [self three];

我想要的是'(撇号)标志,但它不会让我这样做。我知道原因,但我不知道如何绕过它。会这样做有帮助吗?

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"];

unichar apostrophe = [apostropheString characterAtIndex:0];

我可以使用isEqualToString吗?

if ([apostrophe isEqualToString: thisChar]) 

非常感谢任何帮助!


我通过以下方式找到了解决方法;

1)。使用单个字符创建一个NNString,这是一个撇号

NSString *apostropheString = [[NSString alloc] initWithFormat:@"'"];

2)。得到它将它转换为一个名为“app”的unichar,因为它是零索引的,只有一个字符,索引是0。

unichar app = [apostropheString characterAtIndex:0];

3)。然后我说如果“thisChar”等于“app”运行“qmark”

else if (thisChar == app)
        [self qmark];

我希望这对有同样问题的人有帮助!

1 个答案:

答案 0 :(得分:3)

你必须用反斜杠来逃避撇号:'\''