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

代码:

[java] view plaincopy
  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)完成修订,并编入其所撰写的汉英字典。

参考资料:

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

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. 哭了,现在看来高校4月中旬能开学算是早的了,非毕业生可能会更晚
  3. C++Bubble sort冒泡排序的实现算法(附完整源码)
  4. PHP 获取JSON json_decode返回NULL解决办法
  5. Java中的注解--annotation
  6. Zabbix(六) zabbix主动模式监控
  7. maven远程私服发布jar包
  8. ubuntu 16.04 + zabbix 3.4 + postgresql shell
  9. 2014年4月管理计算机应用,全国2014年4月自考管理系统中计算机应用真题
  10. 8.声卡驱动06-自己实现alsa驱动-虚拟声卡-widget
  11. 字符数组初始化c语言,C语言字符数组
  12. 计算机右键功能总结,电脑小技巧分享:右键菜单功能使用技巧
  13. 笔记本BIOS能检测到固态,进入系统后磁盘管理不显示固态硬盘
  14. 详解百度快照劫持,小白必看篇
  15. 线段树(lazy用法)
  16. 阿里 P10 是怎样的存在?
  17. 利用java查看本机的cpu、内存情况
  18. 关于C语言中feof的使用
  19. web前端期末大作业 HTML+CSS+JavaScript---介绍自己的家乡-宁夏js菜单下拉
  20. 如何打造一款好的社区产品

热门文章

  1. DVWA之PHP文件上传漏洞(File Upload)
  2. 华为全球最大数据中心,这才叫黑科技
  3. Revit开发——机电管道的各种管件Fitting的认识与区别
  4. C++中cout默认输出六位有效数字
  5. 我们是怎样在项目内落地自动化测试体系的
  6. 数据结构与算法笔记(王卓网课+教材+大话数据结构)
  7. Java 操作 xml 文件之写入
  8. TcpView 查看端口的小工具(推荐)
  9. 【UE4学习】5.相机和蓝图进阶
  10. 全球QUANT专属证书CQF