nsarray的所有元素都存在于nsstring中

时间:2013-03-12 08:25:36

标签: ios nsstring nsarray

我想扫描NSString(不区分大小写)以检查数组的所有元素是否包含在该String中?

例如

    NSString *string1 = @"Java is pass by value : lets see how?";
    NSString *string2 = @"Java is OOP Language";

    NSArray *array = [[NSArray alloc] initWithObjects:@"Java",@"Pass",@"value", nil];

在这种情况下,string1传递测试,因为它包含数组中的所有关键字(即Java,Pass,Value)。

那么,我该如何实现这一功能?

2 个答案:

答案 0 :(得分:1)

BOOL containsAll = YES;
for (NSString *test in array) {
    if ([string1 rangeOfString:test].location == NSNotFound) {
        containsAll = NO;
        break;
    }
}

答案 1 :(得分:1)

我不测试它的速度,它会在区分大小写的字符串上失败,但这是另一种解决方案(以防万一)

NSArray *components = [string1 componentsSeparatedByString:@" "];
NSSet *textSet = [NSSet setWithArray:components];
NSSet *keywordsSet = [NSSet setWithArray:array];
BOOL result = [keywordsSet isSubsetOfSet:textSet];

请注意,componentsSeparatedByString会非常愚蠢地标记,例如“如何?”而不是你需要的“如何”。