//第一步 汉字转拼音 有2种方法 一种是使用ChineseString 别人写的类  第二种是IOS自带的方法 我使用的便是第二种

NSMutableString *ms = [[NSMutableStringalloc]initWithString:model.contactNickName];

//带声仄 //不能注释掉

if (CFStringTransform((__bridgeCFMutableStringRef)ms, 0,kCFStringTransformMandarinLatin, NO)) {

//                        NSLog(@"pinyin: ---- %@", ms);

}

if (CFStringTransform((__bridgeCFMutableStringRef)ms, 0,kCFStringTransformStripDiacritics, NO)) {

NSString *bigStr = [ms uppercaseString]; // bigStr 是转换成功后的拼音

NSString *cha = [bigStr substringToIndex:1];

model.firstLetter = cha;  // cha 是汉字的首字母

//                        NSLog(@"pinyin: %@ ======== %@ ====== %@",model.nickname,ms, cha);

}

//第二步 根据第一步获取到的 拼音首字母 对汉字进行排序

-(NSMutableArray *)userSorting:(NSMutableArray *)modelArr{

NSMutableArray *array = [[NSMutableArrayalloc] init];

for(int i='A';i<='Z';i++)

{

NSMutableArray *rulesArray = [[NSMutableArrayalloc] init];

NSString *str1=[NSStringstringWithFormat:@"%c",i];

for(int j=0;j<modelArr.count;j++)

{

CardBookModel *model = [modelArr objectAtIndex:j];  //这个model 是我自己创建的 里面包含用户的姓名 手机号 和 转化成功后的首字母

if([model.firstLetterisEqualToString:str1])

{

[rulesArray addObject:model];    //把首字母相同的人物model 放到同一个数组里面

[modelArr removeObject:model];   //model 放到 rulesArray 里面说明这个model 已经拍好序了 所以从总的modelArr里面删除

j--;

}else{

}

}

if (rulesArray.count !=0) {

[array addObject:rulesArray];

[indexArrayaddObject:[NSStringstringWithFormat:@"%c",i]]; //把大写字母也放到一个数组里面

}

}

if (modelArr.count !=0) {

[array addObject:modelArr];

[indexArray addObject:@"#"];  //把首字母不是A~Z里的字符全部放到 array里面 然后返回

}

return array;

}

这个是我做项目的时候 需要自定义通讯录写的,入行不长时间 还很稚嫩,希望不对的 请指出来

IOS开发 汉字转拼音 把用户名按照姓名首字母进行排序相关推荐

  1. Java汉字转拼音(全拼、首字母拼)

    Java汉字转拼音(全拼.首字母拼) public class ChineseToEnglish { /*** 汉字转拼音* @param src* @return*/public static St ...

  2. Java汉字转拼音工具类(支持首字母和全拼)

    工具类产生是因为个人业务需求需要根据中文汉字排序,而博主又对网上回答不满意,所以才根据相关资料写了该工具类,写入博客 以备不时之需.直接上代码: Java汉字转成汉语拼音工具类,需要用到pinyin4 ...

  3. sql函数--汉字转拼音(转成全拼及首字母)

    --方法一sqlserver汉字转拼音首字母 --调用方法 select dbo.procGetPY ('中國') Create FUNCTION dbo.procGetPY ( @str NVARC ...

  4. php实现通讯录按字母分组,iOS - 通讯录开发,名字按拼音首字母分组排序

    应项目需要,需添加一个自定义的通讯录,所以需要对联系人按名字的首字母进行排序.以下方法已经封装好,复制到项目中直接可以使用. 该方法是使用UILocalizedIndexedCollation来进行本 ...

  5. android 获取拼音首字母,Android开发 - 汉字转拼音首字母

    概述 工作中经常会遇到的一些排序问题,比如 按汉字的拼音首字母排序,比如人名排序等,就要用到下面的方法了,思路: 1.获得汉字 2.将汉字转换成首字母,并记录下(必要时保存到数据库) 3.按首字母进行 ...

  6. 通讯录c语言编程按字母分组,iOS - 通讯录开发,名字按拼音首字母分组排序

    应项目需要,需添加一个自定义的通讯录,所以需要对联系人按名字的首字母进行排序.以下方法已经封装好,复制到项目中直接可以使用. 该方法是使用UILocalizedIndexedCollation来进行本 ...

  7. SQL Server根据汉字笔划和取得拼音首字母进行排序

    做房产网站,已经有了小区模板表,将小区的名称一律输入数据表中供登记用户进行选择.发现一个排序的问题:小区名称加载至下拉列表中时默认只是按照主键进行了升序排序,无任何规律,名称找起来非常麻烦.如何按小区 ...

  8. MySQL 汉字提取首字母、姓名首字母全拼、姓名转拼音

    需要实现的功能要用函数来实现 1.汉字提取首字母 fristPinyin : 此函数是将一个中文字符串的第一个汉字转成拼音字母 (例如:"李"->l) CREATE FUNC ...

  9. php 汉字按字母排序,在PHP中,将一个汉字数组按照拼音首字母进行排序

    (之前发的这篇博文因为含有敏感关键字,只好重发一遍了) $str = "我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点.&qu ...

最新文章

  1. 附录1:python记事本
  2. Jenkins Pipline语法
  3. php扩展 创建类 给外部调用
  4. Redis缓存穿透、缓存雪崩、并发问题分析与解决方案
  5. mybatis 注解 动态SQL
  6. property和attribute的区别
  7. 日前加拿大平板厂商 Datawind和印度运营商Reliance Communications日前宣布合作
  8. burpsuite工具抓取Https数据包
  9. Shell入门之管道
  10. angular整合环信webIM
  11. 品牌建设—长效且动态的关系管理进程:赫联电子亚太区
  12. 图片文字转换为文本怎么做?图片转文本的简单方法介绍
  13. 92_特殊方法(魔术方法)和运算符重载
  14. 角位移/倾角/角度传感器如何安装
  15. gta5 oracle文件,gta5 oracle | 手游网游页游攻略大全
  16. css如何透过上层div点击下层的元素解决方法
  17. J2EE框架设计技术分析
  18. 【05】概率图表示之马尔可夫随机场
  19. 电脑怎么卸载软件?彻底卸载软件,4个方法分享
  20. xp系统访问共享服务器提示无网络路径,WinXP提示无任何网络提供程序接受指定的网络路径怎么办?...

热门文章

  1. 免费申请国外大学edu教育邮箱安装微软office全家桶
  2. win10添加照片查看器
  3. hdu Find Integer (6441)(大费马定理)
  4. JQuery弹幕发送
  5. 爬虫到底违法吗?这位爬虫工程师给出了答案
  6. 燕青分布式系统开发之分布式事务解决方案视频(2天)
  7. 写一个能火的游戏视频脚本
  8. 《需求工程——软件建模与分析》阅读笔记3
  9. c语言中d的作用是什么,在C语言中c% 和 d% 是表示什么意思?
  10. 安卓10源码开发定制(29)手电筒控制源码分析