2

NSString (大文字と小文字を区別しない) をスキャンして、配列のすべての要素がその文字列に含まれているかどうかを確認したいですか?

例えば。

    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) を含んでいるため、テストに合格します。

では、どうすればこの機能を実現できますか?

4

2 に答える 2

1

速度をテストしていません。大文字と小文字を区別する文字列では失敗しますが、別の解決策があります(念のため)

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

componentsSeparatedByString「どうやって?」のように、それは非常にばかげていることを覚えておいてください。必要な「方法」の代わりに。

于 2013-03-12T08:48:33.563 に答える
1
BOOL containsAll = YES;
for (NSString *test in array) {
    if ([string1 rangeOfString:test].location == NSNotFound) {
        containsAll = NO;
        break;
    }
}
于 2013-03-12T08:29:16.233 に答える