zoukankan      html  css  js  c++  java
  • 使用CFStringTransform将汉字转换为拼音

    /*
     Boolean CFStringTransform(CFMutableStringRef string, CFRange *range, CFStringRef transform, Boolean reverse);
     
     其中string参数是要转换的string,比如要转换的中文,同时它是mutable的,因此也直接作为最终转换后的字符串。range是要转换的范围,同时输出转换后改变的范围,如果为NULL,视为全部转换。transform可以指定要进行什么样的转换,这里可以指定多种语言的拼写转换。reverse指定该转换是否必须是可逆向转换的。如果转换成功就返回true,否则返回false。
     */

    - (NSString *)transform:(NSString *)chiness
    {
        NSMutableString *pinyin = [chiness mutableCopy];
        
        //将汉字转换成带音标的拼音
        CFStringTransform((__bridge CFMutableStringRef) pinyin, NULL, kCFStringTransformMandarinLatin, NO);
        NSLog(@"%@",pinyin);
        
        //将音标字母转换为普通字母
        CFStringTransform((__bridge CFMutableStringRef) pinyin, NULL, kCFStringTransformStripCombiningMarks, NO);
        NSLog(@"%@",pinyin);
        
        
        //如果有多音字,需要自己手动改
        //如下
        if ([[(NSString *)pinyin substringToIndex:1] compare:@"重"] == NSOrderedSame)
        {
            [pinyin replaceCharactersInRange:NSMakeRange(0, 5) withString:@"chong"];
        }
        
        return pinyin;
    }
  • 相关阅读:
    6 docker-harbor仓库搭建
    4 dockerfile介绍及其实例应用
    1 docker 介绍和安装
    2 docker镜像
    PAT甲级1075 PAT Judge
    PAT甲级1139 First Contact【离散化】
    PAT甲级1055 The World's Richest【排序】
    PAT甲级1013-1014-1015
    洛谷P1135 奇怪的电梯【bfs】
    洛谷P1182 数列分段【二分】【贪心】
  • 原文地址:https://www.cnblogs.com/farer-zcz/p/5476484.html
Copyright © 2011-2022 走看看