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.实际效果

    

时间: 2024-08-07 02:24:24

iOS 搜索之拼音搜索的相关文章

精确搜索加拼音搜索加模糊搜索

1.如果输入的名字和库中的名字完全匹配就精确搜索 2.如果输入的名字在内容中有包含信息 就进行模糊匹配 3.如果搜索没有结果,将名字转化成拼音进行搜索 /**   * 精确搜索还是模糊搜索   * Enter description here ...   * @param string $title   * @return array 1精确  2模糊   */  public function search($title) {   if (empty ( $title )) {    retu

【Solr】 solr对拼音搜索和拼音首字母搜索的支持

问:对于拼音和拼音首字母的支持,当你在搜商品的时候,如果想输入拼音和拼音首字母就给出商品的信息,怎么办呢? 实现方式有2种,但是他们其实是对应的.  用lucene实现 1.建索引, 多建一个索引字段,即拼音和拼音首字母这2个字段.合并的一个字段.  (拼音和拼音首字母,可以通过pinyin4j.jar.将想要进行拼音搜索的字段进行拼音转换.) 2.对输入的参数判断是否是拼音,(可以通过将传人的值转换为 utf-8 形式,如果转换后的字符串长度大于原来的字符串的长度,那么就不是拼音.否则就进行拼

iOS_21团购_拼音搜索

最终效果图: 关键代码: 搜索结果控制器: // // SearchResultController.m // 帅哥_团购 // // Created by beyond on 14-8-15. // Copyright (c) 2014年 com.beyond. All rights reserved. // 当搜索框searchBar里面的文字change的时候,会创建本控制器,展示搜索结果列表,本控制器只有唯一一个成员变量,那就是从CityLocationController控制器的sea

微信小程序开发之带搜索记录的搜索框

实现功能:点击搜索框,有搜索记录时以下拉菜单显示,点击下拉子菜单,将数据赋值到搜索框,点击搜索图标搜索,支持清空历史记录,可手动输入和清空查询关键字, UI: wxml: <!--查询历史记录数据--><view class="ddclass" style="margin-left: 50rpx;z-index:80" hidden="{{!StorageFlag}}" style="z-index:100"

图算法系列-深度优先搜索与广度优先搜索

2.深度优先搜索 为了访问一个顶点,我们将它标记为已经访问过,然后递归的访问所有与子邻接的并且尚未标记的顶点,这就是深度优先搜索(DFS),DFS常用于解决路径问题. 比如下面的连通图,我们从顶点0开始对图进行探索 下面这个图显示了DFS处理时的递归调用树. DFS可以解决的问题:1)环检测:一个图中有环吗?该图是森林吗?2)简单路径:给定两个顶点,是否存在一条连接他们的路径3)简单连通性:无论何时使用DFS,都可以在线性时间内确定一个图是否连通4)顶点搜索:在给定顶点所在的同一个连通分量中有多

07.everything的搜索历史按照搜索时间排序

需求:everything的搜索历史按照搜索时间排序;(现在是按搜索次数排序的) "Sun Jun 23, 2013 8:14 am"的时候作者就说: Sorting search history by last search date in Everything is on my Things to do list. 但是看了更新日志,翻了菜单,并没有找到相关设置; www.voidtools.com ? View topic - When does Everything saves

创建一个提供搜索功能的搜索类(可运行)

/* * 这段代码的主要功能是对于创建索引的后的文件, * 创建一个提供搜索功能的搜索类. * */ package ch2.lucenedemo.process; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Date; import java.util.Iterator; import jav

【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索

摘要: 地图服务,大家能想到哪些?POI搜素,输入提示,地址解析,公交导航,驾车导航,步行导航,道路查询(交叉口),行政区划等等.如果说覆盖物Marker是地图的骨骼,那么服务,就是地图的气血.有个各种各样的地图服务,我们的地图应用才能变得有血有肉,活灵活现. 第四篇拆成了几个要点,本篇主要讲搜索服务.包括周边搜索,关键词搜索,范围搜索,搜索提示(自动完成,输入提示),行政区域,交叉路口,检索自有数据(云图). demo:http://zhaoziang.com/amap/zero_4_1.ht

图的遍历之 深度优先搜索和广度优先搜索

本章会先对图的深度优先搜索和广度优先搜索进行介绍,然后再给出C/C++/Java的实现. 目录 1. 深度优先搜索的图文介绍 1.1 深度优先搜索介绍 1.2 深度优先搜索图解 2. 广度优先搜索的图文介绍 2.1 广度优先搜索介绍 2.2 广度优先搜索图解 3. 搜索算法的源码 深度优先搜索的图文介绍 1. 深度优先搜索介绍 图的深度优先搜索(Depth First Search),和树的先序遍历比较类似. 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然