原文:https://blog.csdn.net/uyy203/article/details/54632495
最近发现一个相当轻巧,运行速度很快的汉字转拼音库——TinyPinyin,这个汉字转拼音库比上一篇讲述列表按照A-Z的规则排序的文章所使用的汉字转拼音库运行速度还要快10倍以上。
主要特性
生成的拼音不包含声调和方言,均为大写;
支持自定义词典;
执行效率很高(Pinyin4J 的 4~16 倍);
很低的内存占用(不添加词典时小于 30KB)。
主导入Gradle
buildscript {
repositories {
jcenter()
}
dependencies {
compile 'com.github.promeg:tinypinyin:2.0.1' // TinyPinyin 核心包,约 80KB
compile 'com.github.promeg:tinypinyin-lexicons-android-cncity:2.0.1' // 可选,适用于 Android 的中国地区词典
compile 'com.github.promeg:tinypinyin-lexicons-java-cncity:2.0.1' // 可选,适用于 Java 的中国地区词典
}
}
使用方法
/**
* 如果 c 为汉字,则返回大写拼音;如果 c 不是汉字,则返回 String.valueOf(c)
*/
String Pinyin.toPinyin(char c)
/**
* c 为汉字,则返回 true,否则返回 false
*/
boolean Pinyin.isChinese(char c)
/**
* 将输入字符串转为拼音,转换过程中会使用之前设置的用户词典,以字符为单位插入分隔符
*/
String toPinyin(String str, String separator)
词典API
// 添加中文城市词典
Pinyin.init(Pinyin.newConfig().with(CnCityDict.getInstance());
// 添加自定义词典
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;
}
}));
网友评论