您的位置:首页 > 移动开发 > IOS开发

IOS开发把汉字转换成拼音的两种方法和返回拼音首字母

2015-09-15 20:43 841 查看
一 把汉字转换成拼音的方法1:

-(void)chChangePin
{
//  把汉字转换成拼音第一种方法
NSString *str = [[NSString alloc]initWithFormat:@"%@", str1];
// NSString 转换成 CFStringRef 型
CFStringRef string1 = (CFStringRef)CFBridgingRetain(str);
NSLog(@"%@", str);
//  汉字转换成拼音
CFMutableStringRef string = CFStringCreateMutableCopy(NULL, 0, string1);
//  拼音(带声调的)
CFStringTransform(string, NULL, kCFStringTransformMandarinLatin, NO);
NSLog(@"%@", string);
//  去掉声调符号
CFStringTransform(string, NULL, kCFStringTransformStripDiacritics, NO);
NSLog(@"%@", string);
//  CFStringRef 转换成 NSString
NSString *strings = (NSString *)CFBridgingRelease(string);
//  去掉空格
NSString *cityString = [strings stringByReplacingOccurrencesOfString:@" " withString:@""];
NSLog(@"%@", cityString);
}


结果如下:



二、汉字转拼音2
这种方法在传值的时候不灵活,到转换成无声调的(有空格符的)拼音和去掉空格的方式和第一种一样:

- (void)change2
{
CFMutableStringRef string2 = CFStringCreateMutableCopy(NULL,0,CFSTR("第二种"));
NSLog(@"%@",string2);
//  带声调符号拼音
CFStringTransform(string2,NULL, kCFStringTransformMandarinLatin,NO);
NSLog(@"%@",string2);
// 去掉声调符
CFStringTransform(string2,NULL, kCFStringTransformStripDiacritics,NO);
NSLog(@"%@",string2);
//  CFStringRef 转换成NSString
NSString*string3 = (NSString*)CFBridgingRelease(string2);
//  去掉 空格
NSString*cityString2 = [string3 stringByReplacingOccurrencesOfString:@"" withString:@"" ];
NSLog(@"%@",cityString2);
}


结果如下:



注意:在转换的过程中涉及很对定义的名字,自己使用的时候不要把变量的名字高混淆
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: