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

一 把汉字转换成拼音的方法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);
}

结果如下:


注意:在转换的过程中涉及很对定义的名字,自己使用的时候不要把变量的名字高混淆



你可能感兴趣的:(iOS)