比较两个NSString数组时,出现问题。 其中一个数组不断更改,因为它链接到UITextField,所以当你写任何东西时,它都存储在数组中。查找两个字符串中匹配字的序列
-(void) tick: (ccTime) dt{
NSString *level = (NSString *)gameData[2]; //this doesn't change. example: "one two three .."
NSString *text = (NSString *)tf.text; //text field keeps changing as I write
NSArray *separatedText = [text componentsSeparatedByString:@" "];
NSArray *separatedLevel = [level componentsSeparatedByString:@" "];
我要检查是否有任何您与任何被存储在级阵列中的话写匹配的话。 例如, 级别是:“比较两个字符串” 而我写“比较” 所以这个方法,会返回那1个字是匹配的。所以如果我写“比较两个”它返回2个单词匹配。
我试着用这个代码:
for (int i=0;i<separatedText.count;i++){
for (int j=0;j<separatedLevel.count;j++){
if (![separatedText[i] caseInsensitiveCompare:separatedLevel[j]]){
NSLog(@"OK");
}
}else{
NSLog(@"NO");
}
}
}
,但它不能正常工作。 任何想法?
非常感谢。
编辑
caseInsensitiveCompare不返回BOOL,但它为我工作的方式。 如果我运行此代码级别“一二三”和文字“一”的结果是:
OK
NO
NO
,并以“二合一”的结果是:
NO
OK
NO
当它应该是OK OK NO
EDIT 2
很抱歉,如果我表示自己错了。
我想要的结果是“OK OK NO”,当我写两个匹配的词 或者可能返回匹配数的结果。 因此,与前面的例子:
级别: “一二三” 文字: “一两个” 结果: “2个匹配的单词”
不工作,结果始终是“没有任何元素” – mursang