今天和大家分享一个从Android系统源代码提取出来的汉字转成拼音实现方案,只要一个类,560多行代码就可以让你轻松实现汉字转成拼音的功能,且无需其他任何第三方依赖。
需求场景
实际开发过程中需要用到实现汉字转成拼音的场景比较常见,如:通讯录里的联系人字母导航栏,为没有设置头像的用户生成一个名字首字母的头像,国家(省份、城市)字母导航栏,搜索关键字转换成拼音等。

实现方案
Android平台上将汉字转换成为拼音已经有一些开源的第三方实现方案,如pinyin4j和TinyPinyin
pinyin4j:https://sourceforge.net/projects/pinyin4j
TinyPinyin:https://github.com/promeG/TinyPinyin
以上这两个实现方案,都需要引入不少类以及一些相应的编码文件,这里和大家介绍一个比上面两个方案还要精简的实现方案,只要560行代码且无需依赖于其他任何编文件的实现。这个类是从Android系统通讯录源码中提取的,类名为HanziToPinyin,其类文件路径如下:
/packages/providers/ContactsProvider/src/com/android/providers
/contacts/HanziToPinyin.java
这是一个很独立的类,需要使用的项目直接拷贝到自己对应的工程里面即可使用

本文介绍了一个从Android 4.2.2源码中提取的汉字转拼音类HanziToPinyin,无需第三方库,仅560行代码。适用于通讯录字母导航等场景。使用时需要注意在某些国产ROM上的适配问题。类内部通过二分检索实现,性能良好,但不支持多音字。
最低0.47元/天 解锁文章
268





