0

我创建了一个带有特殊字符的字符串,然后我正在迭代另一个 NSString 并尝试查看是否在我感兴趣的 NSString 和新的 NSString 之间找到匹配项。但是, rangeOfString 似乎与特殊字符有关。

本质上就是这个想法,问题是 NSLog 从不读取“万岁!” 因为它没有找到平方根符号。

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

谢谢!

4

1 回答 1

0

这个问题的不幸之处在于,我最初是用 C 语言编写的,对于这个目标来说,这是一种更有效的格式。然而,在这个特定的例子中,我能够通过简单地忠于 NSString 来解决它。

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

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

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

 if ([goal rangeOfString:substr].location != NSNotFound)
      NSLog(@"Hurray!");
于 2013-09-24T18:37:05.573 回答