如何从新排序iphone英文通讯录排序?

在我们通讯录中,联系人都是按一定的顺序(字典顺序)从上到下排列的。那么对于保存为中文的联系人,它的排序是怎样实现的呢?
现行比较好理解,容易想到又通用的方法是先将中文转换为拼音形式,再根据拼音各字母的ACSII码大小比较从而实现排序目的。
1、申请两个数组A、B,A中保存的是原始联系人数据
2、将数组A中的汉字转换为拼音:
iOS在CoreFoundation中提供了CFStringTransform函数,可将汉字转换为拼音,它的定义如下:
Boolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);
参数说明:
string参数是要转换的string,比如要转换的中文,同时它是mutable的,因此也直接作为最终转换后的字符串。
range是要转换的范围,同时输出转换后改变的范围,如果为NULL,视为全部转换。
transform可以指定要进行什么样的转换,这里可以指定多种语言的拼写转换。
reverse指定该转换是否必须是可逆向转换的。
如果转换成功就返回true,否则返回false。
如果要进行汉字到拼音的转换,我们只需要将transform设定为
kCFStringTransformMandarinLatin或者kCFStringTransformToLatin
(kCFStringTransformToLatin也可适用于非汉字字符串)
实例如下:
CFMutableStringRef string = CFStringCreateMutableCopy(NULL, 0, CFSTR(“中国”));
CFStringTransform(string, NULL, kCFStringTransformMandarinLatin, NO);
NSLog(@”%@”, string);
这段代码将输出:
14:41:14.644 Test[] zhōng guó
可以看出,CFStringTransform正确的输出了“中国”的拼音,而且还带上了音标。有时候我们不需要音标怎么办?还好CFStringTransform同时提供了将音标字母转换为普通字母的方法kCFStringTransformStripDiacritics。我们在上面的代码基础上再加上这个:
CFStringTransform(string, NULL, kCFStringTransformStripDiacritics, NO);
NSLog(@”%@”, string);
那么最终将输出:
14:47:00.380 Test[] zhong guo
3、去掉拼音中的空白字符
4、将数组A中联系人的拼音形式存储到数组B中,此时A与B中索引相同的元素存储的是同一个人。在数组B中的每个元素后面都加上该元素在数组中的索引号。
5、对数组B中的所有元素进行排序(按ACSII码)。
6、显示数据时,从数组B中第一个元素开始,依次取出元素末尾的索引号,据此索引号去数组A中提取相应位置的元素将其显示出来,得到的显示结果就是排好序的数据。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:158次
排名:千里之外通讯录-两种方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
通讯录-两种方法
上传于|0|0|文档简介
&&C语言课程设计,数组和链表两种方法,含程序
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩40页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢相关解答一:微信通讯录排序可以改吗 通讯录是根据手机按英文26个字母的顺序来的。你要看你手机能不能设置!望采纳相关解答二:微信的通讯录 可以按 分组显示吗?怎么设置阿?一直一姓氏开头排序,不习惯。 不可以!一直都不行!希望以后能推出!相关解答三:微信中改了自己的昵称,通讯录中字母排序的位置却没变,是怎么回事? 说明系统还没来得及更新,过会就好了相关解答四:微信群里的群成员列表靠甚么排序?首先明显不是拼音首字排序,也不像是发言量排序。难道是个人通讯录收录 群主,管理员,群成员按首写字母排序的相关解答五:如何让通讯录同步微信上? 打开微信设置。然后通用。里面有个通讯录安全插件相关解答六:微信来源通讯录好友 1、这是系统推荐的,现在的状况是你们双方都没有加对方为好友。2、想知道别人是否存有你的手机号码,单凭这个不足以判断。道理很简单,很多推销产品的人,可能都可以通过非法途径拥有你的号码。3、不想别人知道你有微信,难以找到你,这个可以在个人隐私里设置。相关解答七:微信通讯录 100分微信通讯录(好友列表)的数据是保留在腾讯服务器上的,一般不能轻易被非使用自己微信号的其它人盗取的。最近新闻里说的微信好友冒充已加的好友添加,无非是朋友圈、动态、资料等获取的好友信息。相关解答八:如何退出微信通讯录 1、停用微信通讯录助手:目的是不让微信看你手机电话号簿通讯录所有人的电话,同时也不能备份和恢复电话号簿通讯录。是这个意思吗?如图打开微信界面-设置-通用-功能-通讯录安全助手.....点红色停用
如图2、不让电话号簿中朋友通过我的手机号找到我的微信,但我手机号仍然与我微信号绑定。还是这个意思?相关解答九:微信怎么还原通讯录 方法/步骤(转自网络)打开手机中的微信应用。点击底部最后一个菜单 我 点击设置进入设置栏页面 点击通用菜单。进入通用菜单 再点击功能菜单。这样就进入微信的功能插件列表了,在列表中找到通讯录安全助手,点击进去这里是设置通讯录安全助手的一些功能的。点击进入安全助手,第一次使用会出现提示信息,点击确定进入。如果您没有备份过手机通讯录就点击备份。第一次使用也会出现提示信息,点击同意即可。您备份或者恢复手机通讯录的时候都要求您输入安全验证的QQ密码。输入完确定就OK了。这样您的通讯录就备份到云端了或者从云端恢复回来了满意请采纳,谢谢~相关解答十:微信通讯录有什么用 微信电话本是腾讯公司打造的一款高效智能的通讯增强软件:独家微信头像导入;支持通知类短信自动归档、垃圾短信拦截、短信收藏&加密等智能管理;还有来电归属地、黑名单、联系人自动备份和超过5000万的陌生号码识别,功能:1、导入微信头像:一键导入联系人微信头像,让来电界面、联系人列表从此告别灰色单调2、短信智能管理:通知类短信自动归档,垃圾短信智能拦截,让自己短信列表清爽整洁;支持短信加锁,保护你的隐私3、归属地与黑名单:支持来电号码归属地显示,轻松实现号码的黑白名单管理,让自己远离骚扰4、陌生号码识别:收集超过5000万号码数据,为你识别中介、商家等陌生来电,更支持短信显示公司名称,轻松识别防骚扰5、联系人实时备份:联系人自动加密存云端,无需手动操作,轻松实现网络备份与联系人去重,让你的通讯录永不丢失百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆
欢迎转载:
推荐:    

我要回帖

更多关于 iphone通讯录排序 的文章

 

随机推荐