iOS 获取汉字的拼音 CFStringTransform
来源:互联网 发布:有关梦想的电影 知乎 编辑:程序博客网 时间:2024/05/01 21:39
在ios开发中经常碰需要将汉字转成拼音的情况,以下就是我把汉字转成拼音的方法
代码实现
+ (NSString *)transform:(NSString *)chinese{ //将NSString装换成NSMutableString NSMutableString *pinyin = [chinese mutableCopy]; //将汉字转换为拼音(带音标) CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformMandarinLatin, NO); NSLog(@"%@", pinyin); //去掉拼音的音标 CFStringTransform((__bridge CFMutableStringRef)pinyin, NULL, kCFStringTransformStripCombiningMarks, NO); NSLog(@"%@", pinyin); //返回最近结果 return pinyin;}
用kCFStringTransformMandarinLatin
方法转化出来的是带音标的拼音,如果需要去掉音标,则继续使用kCFStringTransformStripCombiningMarks
方法即可。
方法介绍
在iOS中实现上述功能,其实主要是CFStringTransform
方法出了大力气,我们来重点介绍下这个方法
//函数原型Boolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);
参数具体介绍
- string: 需要转换的字符串。由于这个参数是 CFMutableStringRef 类型,一个 NSMutableString 类型也可以通过自由桥接的方式传入。
- range: 转换操作作用的范围。这个参数是 CFRange,而不是 NSRange。当给定为NULL时,操作范围为全部。
- transform: 需要应用的变换。这个参数使用了包含下面将提到的字符串常量的 ICU transform string。
- reverse: 如有需要,是否返回反转过的变换。
在上述参数中,重点也是难点的是 transform 参数,这个参数是一个CFStringRef类型的参数;来到头文件,我们会发现,这个参数的值有很多
我们来粗略的介绍下上面这些值的作用,如下图:
从上图我们可以看出,利用这些值,我们输入左边(Input)的语言,那么结果为右边(Output)的;
上面有些还没有介绍,就不再一一介绍了,这里我再重点介绍一个我们上面用到的kCFStringTransformStripCombiningMarks
,他的功能就是去掉原有字符串中的音标或者类似于音标的符号。
本文主要参考:http://nshipster.cn/cfstringtransform/
本文简书链接:http://www.jianshu.com/p/a28be7b7f1d3
0 0
- iOS 获取汉字的拼音 CFStringTransform
- iOS 使用CFStringTransform汉字转拼音
- ios 使用CFStringTransform将汉字转为拼音
- iOS-使用CFStringTransform将汉字转换为拼音
- iOS 获取汉字的拼音
- ios 获取汉字拼音的方法比较
- IOS 如何获取汉字字符串的拼音
- iOS获取汉字拼音首字母的方法
- 使用CFStringTransform将汉字转换为拼音
- 使用CFStringTransform将汉字转换为拼音
- 使用CFStringTransform将汉字转换为拼音
- 使用CFStringTransform 将汉字转换为拼音
- 使用CFStringTransform 将汉字转换为拼音
- 使用CFStringTransform将汉字转换为拼音
- 使用CFStringTransform将汉字转换为拼音
- 使用CFStringTransform 将汉字转换为拼音
- 使用CFStringTransform将汉字转换为拼音
- 使用CFStringTransform将汉字转换为拼音
- 太原UI设计师分享如何让你的APP界面设计颜色分布
- 【代码笔记】iOS-判断textField里面是否有空
- 详解android:scaleType属性
- 解决Delphi 2010启动时卡死并报“displayNotification: 堆栈溢出”错误
- JVM中锁
- iOS 获取汉字的拼音 CFStringTransform
- Unity3d本地上传并且裁剪图片-----pc平台
- thinkphp---静态前端页面与TP框架整合
- showdetail.php
- 为什么在操作系统以及很多编程语言中把1970年作为时间的最小值
- 使用python来操作hive(通过 pyhs2 和 HiveServer2)
- myOA模块化设计思考--第一篇
- 【第三章】 DI 之 3.2 循环依赖 ——跟我学spring3
- Android 编写工具类之Log