跳转至

汉字转拼音库 TinyPinyin

更新日期 2023-5-18
  • 2023-5-18 增加tinypinyin-3.0.0.jar地址
  • 2022-9-30 更新说明

项目地址: https://github.com/promeG/TinyPinyin

这里我们使用2.0.3版本。最新(2020-4-16)是3.0.0版本。

jcenter 引入TinyPinyin不太好用,已经从源码中打包出jar,放在 https://gitee.com/rustfisher/AndroidTutorial

多音字

这个库里并没有囊括所有的多音字词。我们可以添加自定义的多音字数据。

使用PinyinMapDict

关于自定义多音词典的使用

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[]{"CHONG", "QING"});
                    return map;
                }
       }));

添加assets里的多音字文件

首先准备好多音字文本文件。内容格式如下

keng'sheng 吭声
hui'he 会合
kuai'ji 会计
cai'kuai 财会

定义资源类,继承AndroidAssetDict

public class CnCityFullDict extends AndroidAssetDict {
    public CnCityFullDict(Context context) {
        super(context);
    }

    @Override
    protected String assetFileName() {
        return "cncity_fulllist.txt";
    }
}
assetFileName方法返回assets目录下的资源文件名。同理我们可以创建多个资源类。

init方法中进行配置。使用资源文件。使用多个资源文件时注意

Pinyin.init(Pinyin.newConfig()
        .with(new CnCityFullDict(getApplicationContext()))
        .with(new PinyinDuoYin(getApplicationContext())));

注意,要使自定义的词库生效,需要使用toPinyin方法,否则不会起效

public String toPinyin(String str, String separator)

本站说明

一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~

📖AndroidTutorial 📚AndroidTutorial 🙋反馈问题 🔥最近更新 🍪投喂作者

Ads