使用pinyin4j完成中文拼音转换
pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min (xmlerlimin@gmail.com)。以下是一些具体的介绍和使用方式。
1. pinyin4j的官方下载地址http://sourceforge.net/projects/pinyin4j/files/,目前最新的版本是2.5.0
2. 下载解压后的目录结构及说明如下
(1) doc : pinyin4j的api文档
(2) lib : pinyin4j的jar包
(3) src : pinyin4j的源代码
(4) CHANGELOG.txt : pinyin4j的版本更新日志
(5) COPYING.txt : LICENSE说明
(6) README.txt : pinyin4j的概要介绍
3. 运行GUI demo
命令行执行cd ${pinyin-install-dir}/lib,进入到pinyin4j-2.5.0.jar所在的目录,敲入java -jar pinyin4j-2.5.0.jar执行,GUI界面如下:
上图是输入汉字“中”,执行Convert to Pinyin后的截图。Format后有三个下拉框,第一个下拉框有三个选项,用来控制生成的拼音声调的显示方式,三个方式及其效果如下(以汉字“中”,选中Formatted hanyu Pinyin选项卡测试):
WITH_TONE_NUMBER(以数字代替声调) : zhong1 zhong4
WITHOUT_TONE (无声调) : zhong zhong
WITH_TONE_MARK (有声调) : zhōng zhòng
第二个下拉框是碰到unicode 的ü 、v 和 u时的显示方式,共有三个方式, 以下是以声调为WITH_TONE_NUMBER方式显示汉字“吕”示例:
WITH_U_AND_COLON : lu:3
WITH_V : lv3
WITH_U_UNICODE : lü3
第三个下拉框是控制生成的拼音是以大写方式显示还是以小写方式显示,以汉字“国”示例如下:
LOWERCASE :guó
UPPERCASE :GUÓ
上图的汉字转化成拼音后,有六种显示方式,这是因为pinyin4j支持将汉字转化成六种拼音表示法。其对应关系是:汉语拼音-Hanyu Pinyin,通用拼音-Tongyong Pinyin, 威妥玛拼音(威玛拼法)-Wade-Giles Pinyin,注音符号第二式-MPSII Pinyin, 耶鲁拼法-Yale Pinyin和国语罗马字-Gwoyeu Romatzyh。
4. 字符串转化成拼音Java代码示例
代码:
- package testcase;
- import net.sourceforge.pinyin4j.PinyinHelper;
- import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
- import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
- import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
- import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
- import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
- public class PinYinUtil {
- public static String getPinYin(String inputString) {
- HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
- format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
- format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
- char[] input = inputString.trim().toCharArray();
- StringBuffer output = new StringBuffer("");
- try {
- for (int i = 0; i < input.length; i++) {
- if (Character.toString(input[i]).matches("[\u4E00-\u9FA5]+")) {
- String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
- output.append(temp[0]);
- output.append(" ");
- } else
- output.append(Character.toString(input[i]));
- }
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- return output.toString();
- }
- public static void main(String[] args) {
- String chs = "我是中国人! I'm Chinese!";
- System.out.println(chs);
- System.out.println(getPinYin(chs));
- }
- }
运行结果:我是中国人! I'm Chinese!
wŏ shì zhōng guó rén ! I'm Chinese!
附件:
1.各种拼音说明
Yale Pinyin是在第二次世界大战期间由美国军方发明的编码系统,主要为了让在中国地区作战的美军士兵能够快速地熟悉汉语发音,能够向当地人请求帮助,可以说这是一个速成教材,它的目的甚至不是用来互相交流而是使士兵在发音时不会被中国人听错就可以了。
Gwoyeu Romatzyh:即国语罗马字,它是由林语堂提议建立的,在1928年由国民政府大学堂颁布推行。在中国的台湾省这一编码体系得到了保留,但是它就像 Yale一样现在几乎很少有人使用,在1986年,国语罗马字被国语注音符号第二式(MPSII)所取代,在2002年,又被通用拼音(Tongyong Pinyin)取代,成为台湾今天正式的官方汉语音译编码体系。
威妥玛拼音,习惯称作威妥玛拼法或威玛式拼音、韦氏拼音、威翟式拼音,是一套用于拼写中文普通话的罗马拼音系统。19世纪中叶由英国人威妥玛(Thomas Francis Wade)发明,后由翟理斯(Herbert Allen Giles)完成修订,并编入其所撰写的汉英字典。
参考资料:
1. pinyin4j的官方资料
2. 汉语言的罗马化
http://icookies.spaces.live.com/blog/cns!2CC37E2F87FB3864!170.entry
3. Wiki: 威妥瑪拼音(维基百科)
http://wapedia.mobi/zh/%E5%A8%81%E5%A6%A5%E7%8E%9B%E6%8B%BC%E9%9F%B3
http://blog.csdn.net/stoppig/article/details/40889413
使用pinyin4j完成中文拼音转换相关推荐
- java中文拼音转换(maven)
java中文拼音转换(maven) 效果: 学习JAVA可以找到一份好的工作:xué xí J A V A kĕ yĭ zhăo dào yī fèn hăo de gōng zuò 学习JAVA可以 ...
- Java中文拼音转换
添加pom.xml依赖 <!-- 中文拼音转换 --> <dependency><groupId>com.belerweb</groupId><a ...
- 中文拼音转换成CMU的音素工具
0. 说明 感谢 masterwei001~ 目的: 使用工具, 把中文拼音转换成CMU的音素格式 示例: 请帮我%把%温度%调整到%三十度$|Q IY3 NG3 B AE1 NG1 W AO2 % ...
- Python使用pypinyin实现中文拼音转换教程
Python是一种高级编程语言,可以用于各种应用程序的开发.在中文文本处理方面,Python也有很多优秀的库,其中pypinyin是一个非常实用的库,可以将中文汉字转换为拼音. 本文将介绍如何使用py ...
- Golang 基础案例集合:中文拼音转换、解析二维码、压缩 zip、执行定时任务
前言 曾经,因为不够注重基础吃了好多亏.总是很喜欢去看那些高大上的东西,却忽略了最基本的东西.然后会错误的以为自己懂的很多,但是其实是沙堆中筑高台,知道很多高大上的架构,但是基础的东西却不太了解.我觉 ...
- Pinyin4j获取中文拼音
1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理.比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的.比如要查询"曹孟德" ...
- java spring boot 使用pinyin4j 根据中文拼音的首字母分组
示例 想要制作类似于这种的页面,需要后端传给前端以首字母A-Z分组的中文. 实现步骤: 1.在pom.xml中引入包 <dependency> <groupId>com.bel ...
- java 中文分词转拼音_java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍...
java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍 pinyin https://github.com/houbb/pinyin 是 java 实现的高性能中文拼音转换工具. ...
- java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
- java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
最新文章
- DPDK pci驱动探测(十八)
- 直接用Win32 API创建对话框Demo
- 如何使用Keil仿真环境查看CPU类型字长?【worldsing笔记】
- python魔术方法由谁定义_Python的魔术方法
- onvif发送订阅规则
- 使用Scrapy框架编写爬虫
- 工资7500但没社保公积金,和工资4500但福利很好,这两份工作怎么选择?
- CSP202009-1 称检测点查询(100分)【数学】
- MATLAB实战系列(十三)-Matlab绘制柱形图使用技巧解答(附Matlab代码)
- Unity Shader 伽马校正详解
- cobbler(一) cobbler实现系统自动安装
- 实验13:20220625 1+X 中级实操考试(id:3411)
- 创造101:如果软件测试工程师组团出道,怎样才能站C位?!
- Android MediaPlayer本地视频播放器
- 2021年安全员-B证考试及安全员-B证考试试题
- 利用小工具解除pdf的编辑保护
- 计算机房灭火器单具基准,灭火器配置数量的参考
- stata:应用stata学习计量经济学原理 practice 2 stata绘图基础
- WordPress问答插件DW Question Answer分享
- 微软服务器操作系统软件价格,供应微软服务器操作系统软件
热门文章
- Unity Shader Interior mapping 内部映射
- Far away from home
- 厦门大学904数据结构与机器学习资料与辅导
- 微信多开无法连接服务器,ios丨微信多开联网失败解决方法
- 为什么说服务逻辑,才是SaaS的底层逻辑
- Google搜索命令语法
- 极客大学python训练营目录_极客大学算法训练营笔记
- Socket bind() error: invalid operands to binary expression
- QQ 邮箱设置自定义域名邮箱
- Microsoft Office XP 智能标记的安装和安全性