• iOS 模糊、精确搜索匹配功能方法总结 By HL


    字符串搜索主要用于UITableView的搜索功能的筛选,过滤,查询

    下面是一些流行的搜索查询方法

    一.遍历搜索

    for循环

    根据要求:精确搜索(判读字符串相等)   模糊搜索(字符串包含)

    相关知识点

    在一个字符串中搜索子字符串 rangeOfString

    NSString *str1 = @"can you stest speak English";
    NSString *str = @"stest";
    //在str1这个字符串中搜索stest,推断有没有
    if ([str1 rangeOfString:str].location != NSNotFound) {
        NSLog(@"这个字符串中有stest");
    }
    

    rangeOfString 前面的參数是要被搜索的字符串,后面的是要搜索的字符
    NSNotFound 表示请求操作的某个内容或者item没有发现,或者不存在

    NSString *searchText = @"// Do any additional setup after loading the view, typically from a nib."; 
    NSRange range = [searchText rangeOfString:@"(?:[^,])*\." options:NSRegularExpressionSearch]; 
    if (range.location != NSNotFound) { 
        NSLog(@"%@", [searchText substringWithRange:range]); 
    }
    

    8.0 之后,新出了一个方法:containsString

    NSString *str1 = @"can you 
     speak English";  
        NSString *str = @"
    ";  
        //在str1这个字符串中搜索
    ,判断有没有  
        if ([str1 containsString:str]) {  
            NSLog(@"这个字符串中有
    ");  
        }  
    

    示例:

    - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
    {
        [self searchWithText:searchText];
    }
    // NSLiteralSearch 区分大小写(完全比较)
    // NSCaseInsensitiveSearch 不区分大小写 - (void)searchWithText:(NSString *)text { NSString *searchText=text; if (searchText.length>0) { _searching=YES; [copyArray removeAllObjects]; for (NSString *tempStr in sourceArray) { NSRange titleResult=[tempStr rangeOfString:searchText options:NSCaseInsensitiveSearch]; if (titleResult.length>0) { [copyArray addObject:tempStr]; } } } }

    二.谓词搜索

    (用NSPredicate类写的一些搜索方法,比for循环快并且性能消耗很低。)

    OC学习篇之---谓词(NSPredicate)

    NSPredicate 谓词总结 数组过滤 模糊匹配

    iOS开发_常用的正则表达

    iOS_正则表达式

    第三方库

    SearchCoreTest

    一个联系人搜索库,支持的搜索方式包括:用户名汉字、拼音及模糊搜索,号码搜索,最重要的是支持T9搜索,很赞。

    UTPinYinHelper

     

    通过拼音去匹配汉字,简单来说,就是拼音搜索
    示例:
  • 相关阅读:
    Jira 8.5.1 安装教程
    Postgres 10.11安装教程
    SonarQube 7.7 安装教程
    Apollo基于K8S的部署以及接入
    Nexus 安装教程
    Drone 安装教程
    Harbor 安装教程
    Gitlab 11.9.1 高可用教程
    Gitlab 11.9.1 安装教程
    大明的FAQ
  • 原文地址:https://www.cnblogs.com/sixindev/p/4736343.html
Copyright © 2020-2023  润新知