iOS开发中如何更快的实现汉字转拼音

By | 2014年11月28日

最近在做字符串转拼音的速度优化,现分享给大家,各位朋友有什么想法可以给我留言,谢谢!

 

第一阶段:git开源工具:PinYin4Objc

第二阶段:网友推荐方法

第三阶段: 正则表达式优先过滤英文数字特殊字符等

第四阶段:参考http://nshipster.com/cfstringtransform/

第五阶段:终极优化版

Demo移步https://github.com/panghaijiao/PHJTransformPinyinDemo,感谢你的来访!

 

16 thoughts on “iOS开发中如何更快的实现汉字转拼音

  1. 里脊串

    之前做过九宫格快速拨号的功能 我的做法是预处理-查表 把所有汉字对应的拼音映射预先导出到文件 然后app启动时读取文件形成一个汉字-拼音一对一的字典 需要的时候直接查表就ok了 同时可以对文件内进行多音字的剔除优化 让映射始终保持一对一

    Reply
    1. 庞海礁 Post author

      转化拼音的方法有很多!不同的方法效率相差很大,不过只要满足需求,什么方法都可以!

      Reply
    1. 匿名

      NSString *str = @”沈从文”;
      NSLog(@”%@”, [str transformToPinyin]);

      ————————————————–
      PHJTransformPinyinDemo[1723:111408] chen cong wen

      Reply
  2. victor

    NSString *str = @”沈从文”;
    NSLog(@”%@”, [str transformToPinyin]);
    —————————————————————————-
    PHJTransformPinyinDemo[1723:111408] chen cong wen

    Reply
  3. PhilCai

    kCFStringTransformStripDiacritics和kCFStringTransformMandarinLatin可以一定程度上解决多音字的问题, 但是不是100%

    Reply
  4. Zhihong Kan

    你好!
    1)拼音是可以用来书写汉语的。建议制做一个以词为单位的文字输入软件。可参考国家颁布的汉语拼音正词法。
    2)汉字文转拼音文,最好也以词为单位,而不是以音节为单位。我在知乎上用拼音写了一些回答,可以去看一下。
    3)如果能搞出这两种软件,a)对学汉语但学不会汉字的老外可能很有用,b)对4一5岁的孩子学写作有帮助。

    Reply
  5. Zhihong Kan

    你好!
    Wo hen xihuan yong pinyin xie dongxi. Ruguo nimen nenggou sheji chu yi ge pinyinwen shuru ruanjian jiu hao le.

    Zuihao shi yi zhong daiyou shengdiao fuhao de, lingwai yi zhong bu dai shengdiao fuhao, tigong gei dajia xuanyong.

    Reply
  6. 匿名

    [mutableString stringByReplacingOccurrencesOfString:@”‘” withString:@””]

    你好,最近在使用的时候发现,这行代码的意义是什么呢?有什么特殊的汉字转换后会含有单引号吗?
    经过测试,替换单引号前后的拼音是一样的(可能测试的数据量不够)

    Reply
  7. 国杰

    你好!
    [mutableString stringByReplacingOccurrencesOfString:@”‘” withString:@””]

    你好,最近在使用的时候发现,这行代码的意义是什么呢?有什么特殊的汉字转换后会含有单引号吗?
    经过测试,替换单引号前后的拼音是一样的(可能测试的数据量不够)

    Reply

回复 PhilCai 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注