实现字符串数组的模糊搜索过滤Fuzzy Search in NSArray of NSString

利用NSPredicate进行模糊搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
模糊搜索,用来筛选数组里符合要求项
*
@param searchText 要搜索的字符串
@param stringArray 有字符串组成的数组
*
@return 所有符合项组成的数组
*/
-(NSArray)fuzzySearchText:(NSString)searchText inArray:(NSArray)stringArray{
NSStringformat=@”SELF LIKE[cd] ‘“;
for (int i=0; i<searchText.length; i++) {
NSStringstr=[searchText substringWithRange:NSMakeRange(i, 1)];
format=[format stringByAppendingString:[NSString stringWithFormat:@”%@“,str]];
}
format=[format stringByAppendingString:@”‘“];
NSPredicatepredicate = [NSPredicate predicateWithFormat:format];
return [stringArray filteredArrayUsingPredicate:predicate];
}

热评文章