IOS开发 汉字转拼音 把用户名按照姓名首字母进行排序
//第一步 汉字转拼音 有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开发 汉字转拼音 把用户名按照姓名首字母进行排序相关推荐
- Java汉字转拼音(全拼、首字母拼)
Java汉字转拼音(全拼.首字母拼) public class ChineseToEnglish { /*** 汉字转拼音* @param src* @return*/public static St ...
- Java汉字转拼音工具类(支持首字母和全拼)
工具类产生是因为个人业务需求需要根据中文汉字排序,而博主又对网上回答不满意,所以才根据相关资料写了该工具类,写入博客 以备不时之需.直接上代码: Java汉字转成汉语拼音工具类,需要用到pinyin4 ...
- sql函数--汉字转拼音(转成全拼及首字母)
--方法一sqlserver汉字转拼音首字母 --调用方法 select dbo.procGetPY ('中國') Create FUNCTION dbo.procGetPY ( @str NVARC ...
- php实现通讯录按字母分组,iOS - 通讯录开发,名字按拼音首字母分组排序
应项目需要,需添加一个自定义的通讯录,所以需要对联系人按名字的首字母进行排序.以下方法已经封装好,复制到项目中直接可以使用. 该方法是使用UILocalizedIndexedCollation来进行本 ...
- android 获取拼音首字母,Android开发 - 汉字转拼音首字母
概述 工作中经常会遇到的一些排序问题,比如 按汉字的拼音首字母排序,比如人名排序等,就要用到下面的方法了,思路: 1.获得汉字 2.将汉字转换成首字母,并记录下(必要时保存到数据库) 3.按首字母进行 ...
- 通讯录c语言编程按字母分组,iOS - 通讯录开发,名字按拼音首字母分组排序
应项目需要,需添加一个自定义的通讯录,所以需要对联系人按名字的首字母进行排序.以下方法已经封装好,复制到项目中直接可以使用. 该方法是使用UILocalizedIndexedCollation来进行本 ...
- SQL Server根据汉字笔划和取得拼音首字母进行排序
做房产网站,已经有了小区模板表,将小区的名称一律输入数据表中供登记用户进行选择.发现一个排序的问题:小区名称加载至下拉列表中时默认只是按照主键进行了升序排序,无任何规律,名称找起来非常麻烦.如何按小区 ...
- MySQL 汉字提取首字母、姓名首字母全拼、姓名转拼音
需要实现的功能要用函数来实现 1.汉字提取首字母 fristPinyin : 此函数是将一个中文字符串的第一个汉字转成拼音字母 (例如:"李"->l) CREATE FUNC ...
- php 汉字按字母排序,在PHP中,将一个汉字数组按照拼音首字母进行排序
(之前发的这篇博文因为含有敏感关键字,只好重发一遍了) $str = "我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点.&qu ...
最新文章
- 附录1:python记事本
- Jenkins Pipline语法
- php扩展 创建类 给外部调用
- Redis缓存穿透、缓存雪崩、并发问题分析与解决方案
- mybatis 注解 动态SQL
- property和attribute的区别
- 日前加拿大平板厂商 Datawind和印度运营商Reliance Communications日前宣布合作
- burpsuite工具抓取Https数据包
- Shell入门之管道
- angular整合环信webIM
- 品牌建设—长效且动态的关系管理进程:赫联电子亚太区
- 图片文字转换为文本怎么做?图片转文本的简单方法介绍
- 92_特殊方法(魔术方法)和运算符重载
- 角位移/倾角/角度传感器如何安装
- gta5 oracle文件,gta5 oracle | 手游网游页游攻略大全
- css如何透过上层div点击下层的元素解决方法
- J2EE框架设计技术分析
- 【05】概率图表示之马尔可夫随机场
- 电脑怎么卸载软件?彻底卸载软件,4个方法分享
- xp系统访问共享服务器提示无网络路径,WinXP提示无任何网络提供程序接受指定的网络路径怎么办?...