我想扫描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)。
那么,我该如何实现这一功能?
答案 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
会非常愚蠢地标记,例如“如何?”而不是你需要的“如何”。