强大的Android汉字转拼音开源库TinyPinyin

我们日常开发中遇到汉字转拼音的机会比较少,但是在做联系人相关的时候就会常常遇到,比如微信联系列表,手机联系人列表,张三的首字母排序是Z,王五的首字母排序是W。

今天给大家介绍一个汉字转拼音的库TinyPinyin,具体的github地址在这里TinyPinyin

项目导入就一步:

compile ‘com.github.promeg:tinypinyin:2.0.3’ // 2018.2.25日最新版本

我们看下这个库的特性

生成的拼音不包含声调,均为大写;
支持自定义词典,支持简体中文、繁体中文;
执行效率很高(Pinyin4J的4~16倍);
很低的内存占用(不添加词典时小于30KB)。

下面让我们看具体的API使用:

1 根据一个字符转成拼音,如果该字符不是汉字就显示该字符,否则转成拼音(下面几个API一样)

String s= Pinyin.toPinyin('梁');

输出结果是: LIANG

2 根据一个字符串转成拼音

String pinyin = Pinyin.toPinyin("梁超杰","/");
//"/"表示分割符,每个拼音之间的分割的符号

输出结果是: LIANG/CHAO/JIE

3 判断一个字符是不是汉字?

 boolean isChinese = Pinyin.isChinese('梁');

输出结果是: true

4 处理多音字

举个例子:你的联系人有一个人姓解,这是一个多音字(XIE和JIE)但是这个库默认转换的拼音可能和你的叫法不一致,所以下面这个就派上用场了

 // 添加自定义词典
        Pinyin.init(Pinyin.newConfig()
                .with(new PinyinMapDict() {
                    @Override
                    public Map<String, String[]> mapping() {
                        HashMap<String, String[]> map = new HashMap<String, String[]>();
                        map.put("解",  new String[]{"XIE"});
                        return map;
                    }
                }));

 String pinyin = Pinyin.toPinyin("解元","/");

输出结果: XIE/YUAN

不使用匿名内部类的话,你也可以构造一个类去继承PinyinMapDict,来自定义你对于某些特殊字的拼音要求

欢迎评论区留言一起学习使用这个库,么么哒~

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值