Skip to content

汉字转拼音库 TinyPinyin

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

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

多音字

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

使用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)