ios开发系列之中文转拼音,去声调,首字母转大写
2015-10-13 19:42
393 查看
1) 声明一个为汉字的不可变字符串
2) 将字符串转成c语言中的不可变字符串
3) 将上述c中的不可变字符串转成c中可变的字符串
4) 将上述c中的可变字符串转成拼音,同时在每个汉字之间生成一个空格
5) 去掉声调
6) 将转换后的c语言字符串,强制转换为NSString类型
7) 提取首字母作为新的字符串
8) 将首字母转成大写
转化规则有:
NSString * str = @"这是一个汉字";
2) 将字符串转成c语言中的不可变字符串
CFStringRef strRef = (CFStringRef)str;
3) 将上述c中的不可变字符串转成c中可变的字符串
CFMutableStringRef mutableStrRef = CFStringCreateMutableCopy(NULL, 0, strRef);//第一个参数是内存分配器 NULL 默认系统提供的分配器 // 第二个参数定义当前字符串的长度 如果是0则表示无限制// 第三个参数就是得到的不可变字符串
4) 将上述c中的可变字符串转成拼音,同时在每个汉字之间生成一个空格
CFStringTransform(mutableStrRef, NULL, kCFStringTransformMandarinLatin, NO);//第一参数:得到的可变字符串// 第二个参数:转化的范围 一般NULL// 第三个参数是转化规则//第四个参数就是是否字符串反转
5) 去掉声调
CFStringTransform(mutableStrRef, NULL, kCFStringTransformStripDiacritics, NO);
6) 将转换后的c语言字符串,强制转换为NSString类型
NSString *newStr = (NSString *) mutableStrRef
7) 提取首字母作为新的字符串
NSString *firstLetter = [newStr substringToIndex:1];
8) 将首字母转成大写
NSString *upFirstLetter = [firstLetter uppercaseString];
转化规则有:
CF_EXPORT const CFStringRef kCFStringTransformStripCombiningMarks; CF_EXPORT const CFStringRef kCFStringTransformToLatin; CF_EXPORT const CFStringRef kCFStringTransformFullwidthHalfwidth; CF_EXPORT const CFStringRef kCFStringTransformLatinKatakana; CF_EXPORT const CFStringRef kCFStringTransformLatinHiragana; CF_EXPORT const CFStringRef kCFStringTransformHiraganaKatakana; CF_EXPORT const CFStringRef kCFStringTransformMandarinLatin; CF_EXPORT const CFStringRef kCFStringTransformLatinHangul; CF_EXPORT const CFStringRef kCFStringTransformLatinArabic; CF_EXPORT const CFStringRef kCFStringTransformLatinHebrew; CF_EXPORT const CFStringRef kCFStringTransformLatinThai; CF_EXPORT const CFStringRef kCFStringTransformLatinCyrillic; CF_EXPORT const CFStringRef kCFStringTransformLatinGreek; CF_EXPORT const CFStringRef kCFStringTransformToXMLHex; CF_EXPORT const CFStringRef kCFStringTransformToUnicodeName; CF_EXPORT const CFStringRef kCFStringTransformStripDiacritics
相关文章推荐
- iOS多线程编码之NSThread的使用
- iOS7下Cell高度自适应
- iOS之OC随笔-@class与#import,#include的用法区分
- iOS 中textfield只允许输入字母和数字,限制长度
- iOS中 读取相册,调用系统相机 技术分享
- iOS中 读取相册,调用系统相机 技术分享
- ios短信和电话--参考
- ios阻止锁屏 --老代码,供参考
- iOS技术博客
- iOS 屏幕旋转 手动和自动
- ios7 sdk 新特性
- iOS 获取手机的型号,系统版本,软件名称,软件版本
- iOS 8 定位失败问题
- ios oc 代码 转换为 c++ 描述代码编译过程
- 获取iOS设备型号的方法总结
- iOS 7隐藏statusbar
- 写给iOS小白的MVVM教程(序)
- 写给iOS小白的MVVM教程(序)
- IOS, xib和storyboard的混用--参考
- iOS:quartz2D绘图 (动画)