中文转拼音
来源:互联网 发布:tcl语言有什么用 知乎 编辑:程序博客网 时间:2024/06/03 19:47
在项目中,需要根据文字或者文字的拼音进行模糊搜索;用过很多第三方库来转化,最后还是感觉Pinyin比较好用;同时汉字中夹杂英文字母也能转。
下面介绍下Pinyin的使用:
1、使用Pinyin之前需要先引入:
#import "pinyin.h"2、获取某个中文语段的首个文字的拼音首字母:
+(NSString*)getFirstLetterFromZh:(NSString*)zh{ NSString *transformedStr;//转化了的数据 NSString *originStr=[NSString stringWithFormat:@"%@",zh]; if(originStr==nil){ originStr=@""; } if(![originStr isEqualToString:@""]){ NSString *pinYinResult=[NSString string]; NSString *singlePinyinLetter=[[NSString stringWithFormat:@"%c",pinyinFirstLetter([originStr characterAtIndex:0])]uppercaseString]; pinYinResult=[pinYinResult stringByAppendingString:singlePinyinLetter]; transformedStr=pinYinResult; }else{ transformedStr=@""; } return transformedStr; /* //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:zh]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO); //再转换为不带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO); //转化为大写拼音 NSString *pinYin = [str capitalizedString]; //获取并返回首字母 return [pinYin substringToIndex:1]; */}
3、获取中文字段的所有文字的拼音首字母:
+(NSString *)getAllFirstLetterFromZh:(NSString *)zh{ NSString *transformedStr;//转化了的数据 NSString *originStr=[NSString stringWithFormat:@"%@",zh]; if(originStr==nil){ originStr=@""; } if(![originStr isEqualToString:@""]){ NSString *firstLetters=[[NSString alloc]init]; for(int i = 0; i<originStr.length; i++) { NSRange range=NSMakeRange(i, 1); NSString *tmpStr=[originStr substringWithRange:range]; NSString *pinYinResult=[NSString string]; NSString *singlePinyinLetter=[[NSString stringWithFormat:@"%c",pinyinFirstLetter([tmpStr characterAtIndex:0])]uppercaseString]; pinYinResult=[pinYinResult stringByAppendingString:singlePinyinLetter]; // 找出所有的大写字母 firstLetters = [firstLetters stringByAppendingFormat:@"%@",pinYinResult]; } transformedStr=firstLetters; }else{ transformedStr=@""; } return transformedStr; /* //转成了可变字符串 NSMutableString *str = [NSMutableString stringWithString:zh]; //先转换为带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO); //再转换为不带声调的拼音 CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO); //转化为大写拼音 NSString *pinYin = [str capitalizedString]; NSMutableString *pinYinStr = [NSMutableString stringWithString:pinYin]; NSString *firstLetters=[[NSString alloc]init]; for (int i = 0; i<pinYinStr.length; i++) { unichar characterOfStr = [pinYinStr characterAtIndex:i]; // 找出所有的大写字母 if(characterOfStr<= 'Z' && characterOfStr>='A') { firstLetters = [firstLetters stringByAppendingFormat:@"%C",characterOfStr]; } } //获取并返回首字母 return firstLetters; */}
4、在某些情况下,需要判断一个字符串是否包含中文:
+(BOOL)isChinese:(NSString *)str{ for(int i=0; i< [str length];i++){ int a = [str characterAtIndex:i]; if( a > 0x4e00 && a < 0x9fff){ return YES; } } return NO;}
http://download.csdn.net/detail/guobing19871024/9684070
0 0
- 中文转拼音首字母
- SQL中文转拼音
- C#中文转拼音
- 中文转拼音
- java中文转拼音
- SQL 中文转拼音
- Flex中文转拼音
- 中文转拼音(php)
- 中文转拼音JS
- asp中文转拼音
- 中文 转 拼音
- java 中文转拼音
- 中文转拼音
- Flex中文转拼音
- java中文转拼音
- 中文转拼音
- JAVA 中文转拼音
- 中文转拼音
- 集合 总结
- 兔子-mipmap与drawable
- Matlab 直方图均衡化
- android studio 编译各种疑难杂症,总有你想要的~
- Eclipse Class Decompiler——Java反编译插件
- 中文转拼音
- jQuery Validate验证框架详解
- 理解OAuth 2.0
- thinkphp 3.2.3(推荐使用,因为直接生成)
- Android进程之间通信Aidl
- Chrome浏览器地址栏https显示红叉和删除线,无法打开网站
- 各种颜色发光二极管的工作电压
- Qt:Qt5程序开机自启动(windows)
- PID算法控制