打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
模糊搜索
- (void)viewDidLoad
{
    [super viewDidLoad];
    searchArray = [[NSMutableArray alloc] init];
    NSArray *arrayy =[NSArray arrayWithObjects:@"李小花",@"李小明",@"李小小",@"孙小雷",@"刘明",@"Adbey",@"hahn",@"adBey",@"小小",@"Banana One",nil];
   
    NSString *key = @"李小";
    [self userFuzzySearch:arrayy keyStr:key];
    if([searchArray count] < 1)
        NSLog(@"No Data!");
    else
        NSLog(@"%@",searchArray);


//不连续搜索
- (void)userFuzzySearch:(NSArray *)dataArray keyStr:(NSString *)key{
    if([dataArray count] < 1) return;
   
    NSString *searchData = @"";
    searchData = [NSString stringWithCString:[key UTF8String] encoding:NSUTF8StringEncoding];
   
    if([searchData length] > 0)
    {
        for(int i=0; i<[dataArray count];i++)
        {
            NSString *data = @"";
           
            if(![searchData canBeConvertedToEncoding:NSASCIIStringEncoding])
            {
                data = [dataArray objectAtIndex:i];
            }else
            {
                data = [dataArray objectAtIndex:i];
                NSMutableString *pinyin = [[NSMutableString alloc] init];
                for(int i=0; i<[data length];i++)
                {
                    NSString *str =[[NSString stringWithFormat:@"%c",pinyinFirstLetter([data characterAtIndex:i])] uppercaseString];
                    [pinyin appendString:str];
                }
                if([pinyin length] > 0)
                    data =  pinyin;
            }
           
            int currentLocation = 0;
            [self searchDataInString:data fullString:[dataArray objectAtIndex:i] withSearchText:searchData withLocation:currentLocation];
        }
    }
}

-(void)searchDataInString:(NSString *)data fullString:(NSString *)fullData withSearchText:(NSString *)searchText withLocation:(int)location{
   
    if([data length] > location)
    {
        NSComparisonResult result = [data compare:searchText options:NSCaseInsensitiveSearch
                                            range:NSMakeRange(location, [searchText length])];
        if (result == NSOrderedSame)
        {
            [searchArray addObject:fullData];
        }else
        {
            location++;
            [self searchDataInString:data fullString:fullData withSearchText:searchText withLocation:location];
        }
    }
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel中将汉字转化为拼音(完整拼音)版 - weiwei的日志 - 网易博客
ios 开发中 怎么使用block 代替代理方法
iOS文本输入过滤 emoji 表情符号
IOS 序列化与反序列化 NSKeyedUnarchiver
IOS项目的架构模式
IOS开发的一些技巧和常见问题(2)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服