zoukankan      html  css  js  c++  java
  • iOS 搜索之拼音搜索

    1.需要用到第三方库 PinYin4Objc

    2.使用方法

    2.1 设置输出格式

    HanyuPinyinOutputFormat *fmt = [[HanyuPinyinOutputFormat alloc]init];

    fmt.caseType = CaseTypeUppercase;    // 表示按大写字母输出

    fmt.toneType = ToneTypeWithoutTone; // 表示不带声调 

    fmt.vCharType = VCharTypeWithUUnicode; // v以ü表示

    2.2 执行转换

    NSString *pinyin = [PinyinHelper toHanyuPinyinStringWithNSString:@"北京" withHanyuPinyinOutputFormat:fmt withNSString:@"#"];

    参数1:@"北京",  待转换的中文字符串

    参数2:fmt,        输出格式

    参数3:@"#",     分隔符,可以是空字符串 @""

    打印字符串pinyin的结果: BEI#JING

    3.实现拼音的首字母的搜索

    NSString *pinyin2 = [PinyinHelper toHanyuPinyinStringWithNSString:city.name withHanyuPinyinOutputFormat:fmt withNSString:@"#"];

    NSArray *words = [pinyin2 componentsSeparatedByString:@"#"];

    NSMutableString *headLetterStr = [NSMutableString string];

    [words enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {

      [headLetterStr appendString:[(NSString *)obj substringToIndex:1]];

    }];

    4.常规的搜索判断条件,举城市搜索的例子

    if( ([city.name rangeOfString:condition].length != 0) ||

        ([pinyin rangeOfString:condition.uppercaseString].length != 0) ||

        ([headLetterStr rangeOfString:condition.uppercaseString].length != 0)

      )

    {

           // 搜索成功,需要做的事情

    }

    5.实际效果

        

  • 相关阅读:
    kubectl命令行工具
    资源编排(YAML)
    vscode自定义vue模板代码
    vscode10个必装的插件
    【转】Android系统开篇
    Android应用资源分析(老罗链接整理)
    APK优化工具zipalign的详细介绍和使用
    Android中APK签名工具之jarsigner和apksigner详解
    Android反编译和二次打包
    python修饰器(装饰器)以及wraps
  • 原文地址:https://www.cnblogs.com/oumygade/p/4225376.html
Copyright © 2011-2022 走看看