带特殊字符的rangeOfString
问题描述:
我创建了一个带有特殊字符的字符串,然后我遍历另一个NSString并试图查看是否找到了我感兴趣的NSString和新的NSString之间的匹配。然而,rangeOfString似乎有特殊字符的挂断。带特殊字符的rangeOfString
基本上这是这个想法,问题是NSLog从来没有读过“华友世界”!因为它找不到平方根符号。
NSString *goal = @"√"
NSString *input [email protected]"Messing with Sasquatch √"
int strLength = [input length];
int strpos = 0;
unichar ch = [input characterAtIndex:strpos];
while (strpos < strLength)
{
ch = [input characterAtIndex:strpos];
if ([goal rangeOfString:[NSString stringWithFormat:@"%c",ch]].location != NSNotFound)
NSLog(@"Hurray!");
++strpos;
}
谢谢!
答
这个问题有什么不幸的是,我原来是用C写的,这对于这个目标来说是一种更高效的格式。然而,在这个特殊的例子中,我能够通过坚持NSString来解决它。
也就是说,我不是移动到char然后返回,而是按如下方式创建了长度为1的substr。
NSRange subRange = {strpos, 1};
NSString *substr = [input substringWithRange:subRange
然后,在循环中,只使用SUBSTR如下:
if ([goal rangeOfString:substr].location != NSNotFound)
NSLog(@"Hurray!");
挂机?什么不工作? –
它永远不会说“万岁”它永远找不到sqrt字符 – Meshach
@DavidCaunt任何想法? – Meshach