ios - 在字符串数组中的任意位置查找字母 ios

标签 ios

我有以下方法来过滤一些结果: 目前它这样做: 数组: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/

相关文章:

iphone - iOS 7 中的 UIView 显示问题

ios - 将静态库添加到 podspec

ios - 居中对齐 UIImageview 和大型 UILabel AutoLayout

ios - 一旦有完整的行,如何删除 SKSpriteNode? (像俄罗斯方 block )

ios - 如何保存NSMutableArray来解析?

ios - 仅允许访问 HTML5 中的相机设备

iOS 7 - 有没有办法禁用 Safari 中的前后滑动功能?

ios - 核心情节 : y Axis labels should start from 60

ios - iOS 中的应用内购买测试

ios - 每次我的应用程序启动时(无论是从冷启动还是从后台启动)我都想让它做一些事情,我该如何完成?