iOS开发中如何更快的实现汉字转拼音
来源:互联网 发布:对外经贸大学 知乎 编辑:程序博客网 时间:2024/05/21 07:06
第一阶段:git开源工具:PinYin4Objc
第二阶段:网友推荐方法
- (NSString *)transformToPinyin { NSMutableString *mutableString = [NSMutableString stringWithString:self]; CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, false); CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformStripDiacritics, false); return mutableString;}
第三阶段: 正则表达式优先过滤英文数字特殊字符等
- (NSString *)transformToPinyin { NSMutableString *mutableString = [NSMutableString stringWithString:self]; BOOL isNeedTransform = ![self isAllEngNumAndSpecialSign]; if (isNeedTransform) { CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, false); CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformStripDiacritics, false); } return mutableString;} - (BOOL)isAllEngNumAndSpecialSign { NSString *regularString = @"^[A-Za-z0-9\\p{Z}\\p{P}]+$"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regularString]; return [predicate evaluateWithObject:self];}
第四阶段:参考http://nshipster.com/cfstringtransform/
- (NSString *)transformToPinyin { NSMutableString *mutableString = [NSMutableString stringWithString:self]; BOOL isNeedTransform = ![self isAllEngNumAndSpecialSign]; if (isNeedTransform) { CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, false); CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformStripCombiningMarks, false); } return mutableString;} - (BOOL)isAllEngNumAndSpecialSign { NSString *regularString = @"^[A-Za-z0-9\\p{Z}\\p{P}]+$"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regularString]; return [predicate evaluateWithObject:self];}
第五阶段:终极优化版
- (NSString *)transformToPinyin { NSMutableString *mutableString = [NSMutableString stringWithString:self]; CFStringTransform((CFMutableStringRef)mutableString, NULL, kCFStringTransformToLatin, false); mutableString = (NSMutableString *)[mutableString stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:[NSLocale currentLocale]]; return mutableString;}
Demo移步https://github.com/panghaijiao/PHJTransformPinyinDemo
文章来源:http://www.olinone.com
0 0
- iOS开发中如何更快的实现汉字转拼音
- iOS开发中如何更快的实现汉字转拼音
- iOS开发中如何更快的实现汉字转拼音
- iOS开发 汉字转拼音
- iOS中汉字转拼音
- iOS searchbar实现汉字更具拼音首字母排序
- excel中如何实现提取汉字的拼音首字母
- IOS 如何获取汉字字符串的拼音
- 汉字转拼音的实现
- 【iOS开发】字符串汉字转拼音
- 在VC++中实现获取汉字拼音的首字母,转
- iOS 汉字转拼音
- iOS 汉字转拼音
- IOS 汉字转拼音
- iOS:汉字转拼音
- iOS 汉字转拼音
- iOS汉字转拼音
- ios 汉字转拼音
- basename 与 basename_r 函数
- MySQL学习系列10:自定义存储过程和函数
- 在Android程序中使用已有的SQLite数据库
- 2015062708 - 数学与收获
- gcc源码安装-版本4.7.3
- iOS开发中如何更快的实现汉字转拼音
- linux内存源码分析 - 页表的初始化
- 黑马程序员-IOS学习笔记(十)概念和关键字的总结
- java控制多核cpu的占用率
- linux awk命令详解
- x-webkit-speech 语音输入功能
- Maven实战(一)——坐标规划
- Java文件 Properties的一些操作
- 黑马程序员-IOS学习笔记(十一)C语言总结