rangeOfString包含特殊字符

时间:2013-09-23 21:22:52

标签: ios objective-c

我创建了一个带有特殊字符的字符串,然后我在另一个NSString上进行迭代,并尝试查看我感兴趣的NSString和新的NSString之间是否匹配。但是,rangeOfString似乎有一个带有特殊字符的挂断。

基本上这就是这个想法,问题是NSLog永远不会读取" Hurray!"因为它没有找到平方根符号。

NSString *goal = @"√"

NSString *input =@"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;
}

谢谢!

1 个答案:

答案 0 :(得分:0)

这个问题的不幸之处在于我在C中写了这个,这是一个更有效的格式。但是,在这个特定的例子中,我能够通过简单地坚持NSString来解决它。

也就是说,我没有移动到char然后返回,而是创建了一个长度为1的substr,如下所示。

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

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

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