阅读约 1 分钟
168 字
最近遇到一个项目,这个项目的账号是用户的姓名拼音,原先是管理员自己录入数据,目前由于部分原因,有我这个系统维护人员,录入数据 200 多天数据,录入太麻烦了,所以写了这个脚本,自己填写根绝姓名生成账号,那接下来就让我们走入 TinyPinyin 的世界
目前汉字换拼音解决方案总览
- TinyPinyin
- Pinyin4j
- JPinyin
本次我们介绍的是 TinyPinyin,这是一个开源的类库,GitHub 仓库地址
简介
TinyPinyin 是适用于 Java 和 Android 的快速、低内存占用的汉字转拼音库。
特性
- 生成的拼音不包含声调,均为大写;
- 支持自定义词典,支持简体中文、繁体中文;
- 执行效率很高(Pinyin4J 的 4~16 倍);
- 很低的内存占用(不添加词典时小于 30KB)。
使用
仓库引入
maven 仓库引入 jar
1
2
3
4
5
|
<dependency>
<groupId>com.github.promeg</groupId>
<artifactId>tinypinyin</artifactId>
<version>2.0.3</version>
</dependency>
|
gradle 引入仓库
1
2
3
4
5
6
7
8
9
10
11
12
13
|
buildscript {
repositories {
jcenter()
}
dependencies {
compile 'com.github.promeg:tinypinyin:2.0.3' // TinyPinyin核心包,约80KB
compile 'com.github.promeg:tinypinyin-lexicons-android-cncity:2.0.3' // 可选,适用于Android的中国地区词典
compile 'com.github.promeg:tinypinyin-lexicons-java-cncity:2.0.3' // 可选,适用于Java的中国地区词典
}
}
|
用法
汉字转拼音 API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/**
* 如果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
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// 添加中文城市词典
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;
}
}));
|
总结
TinyPinyin 用法简单,执行效率高,对于小型项目不错。
除特殊声明外,本博客一律使用以下协议进行授权 「
署名 - 非商业性使用 - 禁止演绎 4.0
」
下一篇