带特殊字符的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; 
} 

谢谢!

+0

挂机?什么不工作? –

+0

它永远不会说“万岁”它永远找不到sqrt字符 – Meshach

+0

@DavidCaunt任何想法? – Meshach

这个问题有什么不幸的是,我原来是用C写的,这对于这个目标来说是一种更高效的格式。然而,在这个特殊的例子中,我能够通过坚持NSString来解决它。

也就是说,我不是移动到char然后返回,而是按如下方式创建了长度为1的substr。

NSRange subRange = {strpos, 1}; 
NSString *substr = [input substringWithRange:subRange 

然后,在循环中,只使用SUBSTR如下:

if ([goal rangeOfString:substr].location != NSNotFound) 
     NSLog(@"Hurray!");