Fork me on GitHub

java中汉字转拼音解决方案

   最近遇到一个项目,这个项目的账号是用户的姓名拼音,原先是管理员自己录入数据,目前由于部分原因,有我这个系统维护人员,录入数据200多天数据,录入太麻烦了,所以写了这个脚本,自己填写根绝姓名生成账号,那接下来就让我们走入TinyPinyin 的世界

 目前汉字换拼音解决方案总览

  • TinyPinyin

  • Pinyin4j

  • JPinyin

本次我们介绍的是 TinyPinyin,这是一个开源的类库,GitHub仓库地址

简介

TinyPinyin 是适用于Java和Android的快速、低内存占用的汉字转拼音库。

特性

  1. 生成的拼音不包含声调,均为大写;
  2. 支持自定义词典,支持简体中文、繁体中文;
  3. 执行效率很高(Pinyin4J的4~16倍);
  4. 很低的内存占用(不添加词典时小于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 用法简单,执行效率高,对于小型项目不错。

本文标题:java中汉字转拼音解决方案

文章作者:孤城落寞

发布时间:2018年12月14日 - 21:50:42

最后更新:2019年02月22日 - 15:21:21

原始链接:https://blog.gclmit.club/archives/29b1ce09.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。



-------------本文结束 感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!