nightwish12075 发表于 2014-12-31 11:13

Java汉字转拼音

由于项目中有类似通讯录的模块,所以查询了网上的汉字转拼音的方法,进行测试


Java 汉字转拼音方法汇总


测试文字


嫑biào 窵diào 覅fiào 誩jìng 嘦jiào
両liǎng 燊shēn 砼tóng 勰xié 顕xiǎn


嫑窵覅誩嘦両燊砼勰顕
bdfjjlstxx


由于多方面的因素,未去优化代码 和 测试代码的性能,感兴趣的可以自行测试


方法名: ChineseCharToEn
识别结果:bd覅jjlstxx
识别率: 90%
原理:某种算法
缺点:只支持GB2312字符


方法名:ChineseToPinYin
识别结果:*gyz******
识别率: 30%
原理:某种算法
缺点:识别率低


方法名:CnToPy
识别结果:bd覅jjlstxx
识别率: 90%
原理:调用系统PinyinHelper类,比较稳当
缺点:还是存在无法识别的




方法名:CnToSpell
识别结果:嫑gyz嘦両燊砼勰顕
识别率: 0%
原理:莫种算法
缺点:基本无法识别冷僻字


方法名:CnToSpellUtils
识别结果: b窵f誩嘦両stxx
识别率:   60%
原理:利用输入法的码表导出
缺点:识别率不是很好,据说可以识别近99%的汉字


方法名:FirstLetterUtil
识别结果: 嫑窵覅誩嘦両燊zz顕
识别率:   0%
原理:莫种算法
缺点:基本无法识别冷僻字


方法名:HanziToPinyin
识别结果: zz覅誩zzzyj顕
识别率:   0%
原理:莫种算法
缺点:基本无法识别冷僻字


方法名:PingYinUtil
识别结果: bdjgjlstxx
识别率:   80%
原理:调用系统PinyinHelper类,比较稳当
缺点:还是存在无法识别的


方法名:Pinyin
识别结果: bd覅jjlstxx
识别率:   90%
原理:调用系统PinyinHelper类,比较稳当
缺点:还是存在无法识别的




方法名:Pinyin4jUtil (网上推荐的方法,实际结果不敢恭维)
识别结果: ???jjlstxx(会崩溃,单独测试)
识别率:   70%
原理:调用jar包pinyin4j
缺点:如果未加判断,会直接崩溃


方法名:SpellHelper
识别结果: bd覅jjlstxx
识别率:   90%
调用系统PinyinHelper类,比较稳当
缺点:还是存在无法识别的


方法名:Trans2PinYin
识别结果: ???????zuozuo?
识别率:   0%
原理:莫种算法
缺点:基本无法识别冷僻字


测试代码下载地址:http://yunpan.cn/cyJUUxV4YMbGm访问密码 0427


总结:一开始打算用系统PinyinHelper类,后来又高手告知,可以调用系统的那个HanziToPinyin.java类,
由于测试的时候那个类在华为P6测试机上没有启动成功,而且项目已经在测试,没时间去研究,所以暂时搁置,
现在项目已经结束,下一篇再来分析那个很牛逼的源码







f378694339 发表于 2014-12-31 12:12

收藏先 用的上

yyz219 发表于 2014-12-31 12:05

页: [1]
查看完整版本: Java汉字转拼音