从2个数组中比较(字符串)内容

时间:2014-07-31 05:03:37

标签: objective-c nsstring nsarray

我有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"];

2 个答案:

答案 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
        }
    }
}