原文地址:[url]http://blog.csdn.net/hfhwfw/article/details/6030816[/url]
pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min (xmlerlimin@gmail.com)。以下是一些具体的介绍和使用方式。

1. pinyin4j的官方下载地址[url]http://sourceforge.net/projects/pinyin4j/files/[/url],目前最新的版本是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:nogutter] view plaincopyprint?
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. 汉语言的罗马化
[url]http://icookies.spaces.live.com/blog/cns!2CC37E2F87FB3864!170.entry[/url]
3. Wiki: 威妥瑪拼音(维基百科)
[url]http://wapedia.mobi/zh/[/url]威妥玛拼音

[转]Pinyin4j入门教程相关推荐

  1. 转:Pinyin4j入门教程

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

  2. pinyin4j入门教程

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

  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. 让VirtualBox的虚拟机器在电脑开机时自动启动
  2. scikit正则化 API
  3. java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet
  4. [Map 3D开发实战系列] Map Resource Explorer 之四-- Map3D开发中的WPF
  5. python pip本地安装包_python-pip install 安装包
  6. 五月份哪里有有计算机考试,2021年5月全国计算机等级考试报名时间
  7. 学习Spring Boot:(二十四)多数据源配置与使用
  8. 五一假期四天_假期在家上班的12天
  9. 罗永浩吐槽卖小米、苹果被骂,卖华为也被骂,李楠:警惕键盘侠
  10. findmnt-寻找挂载的文件系统
  11. js便签笔记(5)——Dean Edwards大牛的跨浏览器AddEvent()设计(不知道是不是jQuery事件系统的原型)...
  12. 设计模式 单例模式 使用模板及智能指针
  13. kdj买卖指标公式源码_炒股秘籍——KDJ你所不知道的绝密用法(附指标公式源码)...
  14. 阿里云大学>【Python学习路线】Python语言基础自测考试 - 初级难度 | 包过关系列
  15. Xshell复制粘贴快捷键设置
  16. 使用gdb调试出现 No debugging symbols found in a.out
  17. linux系统——管道
  18. 瞬联基于OpenStack的私有云解决方案
  19. 在python中numpy是什么意思_numpy是什么
  20. 设置custom debug keystore

热门文章

  1. 台湾生育率全球最低 民众想生却不敢生
  2. EXCEL函数及用法
  3. uboot2013-10移植(一)--Makefile注释
  4. word自动恢复文档后提示:Word无法打开该文件,因为文件格式与文件扩展名不匹配
  5. PS人物处理,转换成图画风格
  6. 一文读懂JMM内存模型
  7. 火雷噬嗑:去其糟粕;山火贲:取其精华
  8. 苹果手机夜间模式怎么设置_微信终于有“夜间模式”了,苹果安卓都支持!
  9. EXCEL将一栏数据进行分隔处理
  10. 华为用户要知道,手机熄屏后依旧能够使用的3个功能,不用可惜了