2

単語の配列があります (すべての単語は NSMutableArray にあります)。以下に示すように、単語をフィルタリングする必要があります。

???? - 任意の 4 文字の単語 ma?t* - 文字「ma」で始まり、4 番目の文字が「t」である任意の単語。 z - 文字「z」を含む単語?n?t? - 2 番目の文字が「n」で 4 番目の文字が「t」の 5 文字の単語。*s*b* - 文字「s」を含み、残りの文字に文字「b」を含む単語。mouth - 現在の単語リストに「moth」という単語が存在する場合、その単語が返されます t*s? - 文字「t」で始まるすべての単語は、少なくとも 3 文字の長さで、単語の最後から 2 番目の文字として「s」が含まれます。* - 単語リスト内のすべての単語を返します。

4

1 に答える 1

3

パターンを使用したフィルターに以下のコードを使用できます

-(NSMutableArray *)searchByPattern:(NSString *)patternString inputArray:(NSMutableArray *)inputArray
{
    NSLog(@"orginal Array count=%d",[inputArray count]);
    NSString *match=[NSString stringWithFormat:@"%@",patternString];
    NSLog(@"match = %@",match);
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@",match];    
    NSMutableArray *mArrayFiltered = [[inputArray filteredArrayUsingPredicate:predicate] mutableCopy];
    //NSLog(@"mArrayFiltered = %@ count = %d",mArrayFiltered,[mArrayFiltered count]);
    return mArrayFiltered;
}
于 2012-08-18T22:44:14.793 に答える