我需要检测一个单字符是等于下划线(_)还是插入符号(^)。我现在是这样做的:
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)
等更可靠。
你不需要比较字符串。您可以比较每个字符。试试这个:
if (ch == '_')
// ... do something ...
else if (ch == '^')
// ... do something else...
希望这对你有帮助。:)
或者
NSString *str = @"string";
const char *myChar = "some string";
if (strcmp(myChar, str.UTF8String))
或
[str isEqualToString:[NSString stringWithUTF8String:myChar]];