我有以下方法来过滤一些结果: 目前它这样做: 数组:alpha、apple、aries、bravo
输入:
阿尔法 苹果 白羊座
类型 l(现在为 al)
阿尔法
我想这样做:
新搜索: 输入 p= α 苹果
下面是代码
提前谢谢您
-(void) filterResults:(NSString *)searchText{
NSMutableArray *test = [NSMutableArray arrayWithArray:self.listContent];
[self.filteredListContent removeAllObjects]; // First clear the filtered array.
for (int i=0; i<[test count]; i++) {
NSString *stringResult = [test objectAtIndex:i];
NSComparisonResult result = [stringResult compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame){
[self.filteredListContent addObject:stringResult];
}
}
[self.filteredListContent sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];//sort alphabetically
NSLog(@"filtered results = %@",self.filteredListContent);
}
最佳答案
要在字符串中的任意位置查找该字母,请将其替换为:
NSComparisonResult result = [stringResult compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame){
[self.filteredListContent addObject:stringResult];
}
这样:
NSRange range = [stringResult rangeOfString:searchText];
if (range.location != NSNotFound) {
[self.filteredListContent addObject:stringResult];
}
请注意,它必须按顺序找到所有字符。
如果您想查找任何字符,请使用rangeOfCharacterFromSet:
。
关于ios - 在字符串数组中的任意位置查找字母 ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13909033/