0

我需要检测 unichar 是否等于下划线 (_) 或插入符号 (^)。我目前正在这样做:

unichar ch;
NSString *chAsString = [NSString stringWithFormat:@"%C", ch];
if ([chAsString isEqualToString:@"_"])
    // ... do something ...
else if ([chAsString isEqualToString:@"^"])
    // ... do something else...

问题#1:这种方法安全吗?即,我能捕捉到这些字符的所有可能编码吗?

问题#2:这是最干净的方法吗?它看起来非常笨拙。但我觉得它比if (ch == 0x5F), 等更可靠。

4

2 回答 2

1

您不必比较字符串。您可以比较每个字符。尝试这个:

if (ch == '_')
    // ... do something ...
else if (ch == '^')
    // ... do something else...

希望这可以帮助.. :)

于 2014-08-21T03:58:21.953 回答
0

任何一个

NSString *str = @"string";
const char *myChar = "some string";
if (strcmp(myChar,  str.UTF8String))

或者

[str isEqualToString:[NSString stringWithUTF8String:myChar]];
于 2014-08-21T07:51:58.393 回答