我有2个数组,每个数组都包含不同的字符串。我想比较那些2的字符串并仅显示匹配的字符串。
例如,如果单词数组有单词列表=“狼”,“Wolfachite”,“Wolfberry”,“狼”
如果names数组有单词列表=“Winnie”,“Wolf”,“Wolfgang”
它会显示“狼”。
遗憾的是,我很困惑我必须采取哪些步骤来比较这两个步骤。 NSString *nameString = [NSString stringWithContentsOfFile:@"/usr/share/dict/propernames"
encoding:NSUTF8StringEncoding
error:NULL];
NSString *wordString = [NSString stringWithContentsOfFile:@"/usr/share/dict/words"
encoding:NSUTF8StringEncoding
error:NULL];
//Fill it into array
NSArray *names = [nameString componentsSeparatedByString:@"\n"];
NSArray *words = [wordString componentsSeparatedByString:@"\n"];
答案 0 :(得分:1)
一个很好的选择是使用-[NSMutableSet intersectSet:]
但请注意,这会使用isEqual:
比较字符串 - 如果您想要不区分大小写或不区分大小写的搜索,那么您需要使用自己的自定义对象和实现-isEqual:
和-hash
。
答案 1 :(得分:0)
使用此代码比较您的字符串
for (int i=0; i<[names count]; i++)
{
NSString *strNames = [[names objectAtIndex:i] uppercaseString];
for (int j=0; j<[words count]; j++)
{
NSString *strWords = [[words objectAtIndex:j] uppercaseString];
if ([strNames isEqualToString:strWords])
{
//your code when condition satisfied
}
}
}