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代码示例

代码:

  1. package testcase;
  2. import net.sourceforge.pinyin4j.PinyinHelper;
  3. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
  4. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
  5. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
  6. import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
  7. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
  8. public class PinYinUtil {
  9. public static String getPinYin(String inputString) {
  10. HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
  11. format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  12. format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
  13. format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
  14. char[] input = inputString.trim().toCharArray();
  15. StringBuffer output = new StringBuffer("");
  16. try {
  17. for (int i = 0; i < input.length; i++) {
  18. if (Character.toString(input[i]).matches("[\u4E00-\u9FA5]+")) {
  19. String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
  20. output.append(temp[0]);
  21. output.append(" ");
  22. } else
  23. output.append(Character.toString(input[i]));
  24. }
  25. } catch (BadHanyuPinyinOutputFormatCombination e) {
  26. e.printStackTrace();
  27. }
  28. return output.toString();
  29. }
  30. public static void main(String[] args) {
  31. String chs = "我是中国人! I'm Chinese!";
  32. System.out.println(chs);
  33. System.out.println(getPinYin(chs));
  34. }
  35. }

运行结果:我是中国人! 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 )完成修订,并编入其所撰写的汉英字典

转:Pinyin4j入门教程相关推荐

  1. pinyin4j入门教程

    Pinyin4j入门教程 pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min (xmlerlimin@gmail.com).以下是一些具体的介绍和使用方式. ...

  2. [转]Pinyin4j入门教程

    原文地址:[url]http://blog.csdn.net/hfhwfw/article/details/6030816[/url] pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java ...

  3. 将汉字转换成汉语拼音方法,Pinyin4j入门教程

    pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min ().以下是一些具体的介绍和使用方式. 1. pinyin4j的官方下载地址http://sourcefo ...

  4. Pinyin4j入门教程---识别中文

    有时候,需要将汉字编程对应的拼音,以方便数据的处理.比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的.比如要查询"曹孟德",就可以输入" ...

  5. Kafka入门教程与详解

    1 Kafka入门教程 1.1 消息队列(Message Queue) Message Queue消息传送系统提供传送服务.消息传送依赖于大量支持组件,这些组件负责处理连接服务.消息的路由和传送.持久 ...

  6. 【CV】Pytorch一小时入门教程-代码详解

    目录 一.关键部分代码分解 1.定义网络 2.损失函数(代价函数) 3.更新权值 二.训练完整的分类器 1.数据处理 2. 训练模型(代码详解) CPU训练 GPU训练 CPU版本与GPU版本代码区别 ...

  7. python tornado教程_Tornado 简单入门教程(零)——准备工作

    前言: 这两天在学着用Python + Tornado +MongoDB来做Web开发(哈哈哈这个词好高端).学的过程中查阅了无数资料,也收获了一些经验,所以希望总结出一份简易入门教程供初学者参考.完 ...

  8. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  9. mysql query browswer_MySQL数据库新特性之存储过程入门教程

    MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力.在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用 ...

最新文章

  1. 微信真要做操作系统了?
  2. 软件系统理想主义之殇
  3. 二值网络--TBN: Convolutional Neural Network with Ternary Inputs and Binary Weights
  4. malloc开辟的空间在哪一个区间_C++进阶系列之STL(2)SGI版本空间配置器
  5. Thymeleaf语法变量
  6. 图形结构:克隆图,图的遍历的应用,递归和迭代
  7. codeforce 1311 C. Perform the Combo 前缀和
  8. Fragment 键盘弹出方式设置
  9. 超详细图解!【MySQL进阶篇】MySQL架构原理
  10. [转贴]JAVA:RESTLET开发实例(三)基于spring的REST服务
  11. Ubuntu系列10.04、11.04、12.04等虚拟机中安装VMware Tools
  12. ssh 切换用户_从零开始学习华为路由交换 | 配置ssh远程管理
  13. macOS上简便好用的看图软件分享
  14. 最全常见算法工程师面试题目整理
  15. 关于获取3DS MAX中的蒙皮数据 3DSMAX C++API的应用
  16. ps2模拟器pc版_如何在Windows PC上使用PS3控制器
  17. Windows 无法使用内置管理员账户打开IE
  18. TortoiseSVN安装及导入已有SVN仓库
  19. 赚钱游戏APP套路有哪些?
  20. Oracle table move tablespace

热门文章

  1. PTA题目:时间换算
  2. 维度――Beijing Openparty2010年8月清雨榕香后记
  3. 模拟人生5显示与服务器,《GTA5》千人同服是什么样的体验?不是在玩游戏,而是现实?...
  4. 那些年啊 那些事 一个程序员的奋斗史 15
  5. 互联网产品的交互设计方法
  6. 润乾报表中常见的打印类问题的总结
  7. 哪些 Python 库让你相见恨晚?
  8. iphone4S wifi变灰,无法连接无线的解决办法, 神奇的办法:iOS6耗电WiFi变灰问题解决
  9. [细碎的Java1.0]EDG我RNG 三巨头
  10. CSS 控制鼠标划过,图片放大效果