`

ios 模糊搜索 汉字搜索 不分大小写拼音或首字母搜索(要多模糊就有多模糊)

    博客分类:
  • ios
 
阅读更多

模糊搜索越模糊越好,不然很急人的

比如变态产品有个需求:”我是一个老实人“,无论用户输入如下哪个时,都要能搜索出来
我是一个老实人,
老实人,
woshiyigelaoshiren,
WOSHIYIGELAOSHIREN,
wsyglsr,
WSYGLSR,
...

 

NSString *str = @"我是一个老实人";
NSString *transformStr = [NSString tansformToMixedStringWithOriginStr:str];
NSLog(@"转化前: %@", str);
NSLog(@"转化后: %@", transformStr);

// 转化前: 我是一个老实人
// 转化后: 我是一个老实人
,woshiyigelaoshiren,WOSHIYIGELAOSHIREN,wsyglsr,WSYGLSR

 

// 写个NSString分类,方便使用
@interface NSString (LYZ)

+(NSString *)tansformToMixedStringWithOriginStr:(NSString *)originStr;

@end

@implementation NSString (LYZ)

+(NSString *)tansformToMixedStringWithOriginStr:(NSString *)originStr{
    
    // 转成了可变字符串
    NSMutableString *str = [NSMutableString stringWithString:originStr];
    CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);
    //再转换为不带声调的拼音
    CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);
    NSArray *pinyinArray = [str componentsSeparatedByString:@" "];
    
    NSMutableString *allString = [NSMutableString new];

    // 得到拼音
    NSMutableString *pinyinString = [NSMutableString new];
    for (NSString *s in pinyinArray) {
        [pinyinString appendString:s];
    }
    
    // 得到拼音首字母
    NSMutableString *initialStr = [NSMutableString new];
    for (NSString *s in pinyinArray){
        if (s.length > 0){
            [initialStr appendString:  [s substringToIndex:1]];
        }
    }
    
    [allString appendFormat:@"%@,",originStr];// 添加汉字
    [allString appendFormat:@"%@,",pinyinString]; // 添加小写拼音
    [allString appendFormat:@"%@,",[pinyinString uppercaseString]]; // 添加大写拼音
    [allString appendFormat:@"%@,",initialStr]; // 添加小写首字母
    [allString appendFormat:@"%@",[initialStr uppercaseString]]; // 添加大写首字母

    return [allString copy];
}

 

 

 

 

 

 

分享到:
评论

相关推荐

    iOS获取拼音首字母

    在iOS开发中,有时我们需要对汉字进行处理,例如在实现通讯录排序时,通常会用到汉字转换为拼音首字母的功能。"iOS获取拼音首字母"这个话题正是围绕这一需求展开的。通过一行代码快速获取汉字拼音首字母,开发者可以...

    NSPredicate模糊搜索(全方面搜索)支持中文、数字、字母

    模糊搜索允许用户输入不完全或部分关键词,系统就能找到匹配的记录,提高了用户体验。 首先,让我们理解NSPredicate的基本用法。NSPredicate的构造通常包括两个部分:比较运算符和比较表达式。例如,`NSPredicate...

    汉字转拼音及获取首字母

    总的来说,汉字转拼音及获取首字母是中文编程中不可或缺的部分。通过理解和应用这个示例程序,开发者能够更好地处理中文数据,提升用户体验。在实际开发中,还需要考虑性能优化、多音字处理以及特殊情况的适配,确保...

    IOS通讯录读取并按照拼音首字母排序

    这个项目“IOS通讯录读取并按照拼音首字母排序”旨在实现这样一个功能:从用户的iPhone通讯录中获取联系人信息,并根据联系人的名字拼音的首字母进行排序,为后续添加搜索功能打下基础。以下是对这个知识点的详细...

    IOS中文数据转换成拼音首字母

    在iOS开发中,有时我们需要将中文字符转换为其拼音首字母,以便进行中文数据的排序、搜索或者特定功能的实现。这个“IOS中文数据转换成拼音首字母”的项目,由国外的专家开发,提供了这样的功能。它能够帮助开发者...

    IOS应用源码之获取汉字汉语拼音首字母.zip

    这个“IOS应用源码之获取汉字汉语拼音首字母”的压缩包提供了一个实现这一功能的示例代码。下面我们将深入探讨相关的知识点。 首先,我们要了解汉字与汉语拼音之间的转换。在中文环境中,每个汉字都有对应的拼音...

    IOS获取汉字的首字母

    在iOS开发中,有时我们需要获取汉字的首字母,例如用于拼音排序、搜索过滤等功能。本文将详细介绍如何在iOS中实现这一功能,并将其转换为大写形式。我们将通过一个实际的代码示例进行讲解。 首先,我们需要理解汉字...

    获取汉子拼音首字母

    在iOS开发中,经常需要处理汉字与拼音的转换,特别是在实现UITableView的索引功能时,如果数据源包含中文,就需要将汉字转化为拼音首字母来显示在右侧的索引栏上,便于用户快速浏览和查找。标题"获取汉子拼音首字母...

    IOS根据汉字(或英文)按字母排序并按首字母分组

    在iOS开发中,实现“根据汉字(或英文)按字母排序并按首字母分组”的功能,主要涉及到字符串处理、排序算法以及UITableView的数据源方法。这个功能常见于通讯录应用或者任何需要按照字母顺序展示汉字或英文数据的...

    ios应用源码之获取汉字汉语拼音首字母,uitableview中文也可以加index了

    标题和描述所提到的“ios应用源码之获取汉字汉语拼音首字母”就是针对这样一个需求,通过获取汉字的拼音首字母来实现对中文内容的字母排序和快速定位。下面我们将详细讨论这个知识点,以及如何在UITableView中实现这...

    iOS 汉字转拼音助手

    在iOS开发中,有时我们需要将汉字转换为拼音,以便进行搜索、排序或者处理其他与文本相关的任务。"iOS汉字转拼音助手"是一个专门用于解决这一问题的工具类库。这个库能够高效地将中文字符串转化为对应的拼音表示,...

    IOS通讯录联系人选择首字母T9拼音号码搜索排序实现

    3.本程序支持T9搜索,拼音首字母搜索,号码搜索。 4.联系人选择界面···UITableView已对联系人按照A-Z分组排序。可直接将本代码整合到项目中使用。 5.由于本人初学IOS,可能存在某些问题,请自行修改。 6.本...

    ios 模糊搜索

    在iOS开发中,模糊搜索(Fuzzy Search)是一种常见的用户友好功能,它允许用户输入不完全或有拼写错误的关键词来查找相关数据。相比于精确匹配,模糊搜索提供了更高的灵活性和用户体验。本篇将深入探讨iOS中的模糊...

    拼音 文字 数字 字母查找搜索

    而在中文环境中,由于没有明确的顺序,所以拼音搜索成为关键。然而,如果数据集包含英文内容,直接匹配英文字符也是必要的。 “数字”搜索在某些场景下也很重要,比如当数据包含序列号、价格或者日期等数值时。在...

    iOS 开发拼音分类

    综上所述,iOS开发中的拼音分类是一项提高用户体验的关键技术,涉及到汉字转拼音、首字母提取、分类逻辑、UI设计、性能优化和国际化等多个方面。理解并掌握这些知识点,能帮助开发者创建更加友好和高效的通讯录应用...

    拼音首字母检索

    总的来说,"拼音首字母检索"是一个涉及汉字到拼音转换、数据结构优化、搜索算法实现以及用户体验设计等多个技术环节的功能。在实际项目中,这一功能的实现需要综合运用多种编程技术和设计思想,以提供高效、便捷的...

    Swift 实现的中文拼音或文字首字母检索.zip

    在Swift编程语言中实现中文拼音或文字首字母检索是一项常见的需求,特别是在开发iOS应用程序时,如联系人应用或搜索引擎。这个开源项目“Swift 实现的中文拼音或文字首字母检索”提供了一种解决方案,帮助开发者高效...

    iOS获取汉字字符串首字母

    iOS开发中经常遇到需要根据联系人、好友的昵称首字母来分区显示,但是怎么获取汉字的首字母呢,现在只需简单的4行代码,就可以轻松加愉快的获取汉字的首字母了,更有swift代码、OC代码供你选择

    iOS获取汉字拼音首字母

    iOS开发中经常遇到需要根据联系人、好友的昵称首字母来分区显示,但是怎么获取汉字的首字母呢,现在只需简单的4行代码,就可以轻松加愉快的获取汉字的首字母了,更有swift代码、OC代码供你选择

Global site tag (gtag.js) - Google Analytics