在iOS/objective-C中检测下划线和插入字符



我需要检测一个单字符是等于下划线(_)还是插入符号(^)。我现在是这样做的:

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]];

最新更新