Java汉字转拼音库,Pinyin4j
pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min (xmlerlimin@gmail.com)。以下是一些具体的介绍和使用方式。
1.pinyin4j的官方下载地址http://sourceforge.net/projects/pinyin4j/files/
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代码示例代码:
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 {/*** 将字符串中的中文转化为拼音,其他字符不变* * @param inputString* @return*/public static String getPingYin(String inputString) {HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();format.setCaseType(HanyuPinyinCaseType.LOWERCASE);format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);format.setVCharType(HanyuPinyinVCharType.WITH_V);char[] input = inputString.trim().toCharArray();String output = "";try {for (int i = 0; i < input.length; i++) {if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);output += temp[0];} elseoutput += java.lang.Character.toString(input[i]);}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return output;}/** * 获取汉字串拼音首字母,英文字符不变 * @param chinese 汉字串 * @return 汉语拼音首字母 */ public static String getFirstSpell(String chinese) { StringBuffer pybf = new StringBuffer(); char[] arr = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < arr.length; i++) { if (arr[i] > 128) { try { String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat); if (temp != null) { pybf.append(temp[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { pybf.append(arr[i]); } } return pybf.toString().replaceAll("\\W", "").trim(); } 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/hfhwfw/article/details/6030816
Java汉字转拼音库,Pinyin4j相关推荐
- JAVA汉字转拼音工具(pinyin4j)
pinyin4j 介绍 pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库 支持同一汉字有多个发音 还支持拼音的格式化输出,比如第几声之类的, 同时支持简体中文.繁体中文转换为 ...
- java 拼音_GitHub - promeG/TinyPinyin: 适用于Java和Android的快速、低内存占用的汉字转拼音库。...
TinyPinyin 适用于Java和Android的快速.低内存占用的汉字转拼音库. 当前稳定版本:2.0.3 特性 生成的拼音不包含声调,均为大写: 支持自定义词典,支持简体中文.繁体中文: 执行 ...
- 轻巧的汉字转拼音库 TinyPinyin 在Android上的使用
最近发现一个相当轻巧,运行速度很快的汉字转拼音库--TinyPinyin,这个汉字转拼音库比上一篇讲述列表按照A-Z的规则排序的文章所使用的汉字转拼音库运行速度还要快10倍以上. 主要特性 生成的拼音 ...
- 关于汉字转拼音的Pinyin4j工具使用
关于汉字转拼音的Pinyin4j工具使用 1 Pinyin4j的简介 2 Pinyin4j的使用 1 添加maven依赖 2 添加汉字转拼音工具类 关于汉字转为拼音的相关实现,通常使用Pinyin4j ...
- java汉字转拼音(全拼、简拼)
java汉字转拼音(全拼.简拼) <dependency><groupId>com.belerweb</groupId><artifactId>piny ...
- 记录一下:Java 汉字获取拼音或首字母工具类
记录一下:Java 汉字获取拼音或首字母工具类 Maven依赖配置 Java代码 本文主要记录一下在Java中,如何将字符串中的中文转化为拼音,获取汉字串拼音首字母,获取汉字串拼音的工具类,以及相关的 ...
- java 汉字转换拼音
java 汉字转换拼音 maven依赖 <dependency><groupId>com.belerweb</groupId><artifactId>p ...
- Python 汉字转拼音库 pypinyin, 附:汉字拼音转换工具
一.初衷: 一些开源软件的配置文件中识别区分的部分用英文,那么我们在批量生成配置文件的时候,可以从CMDB导入汉字(idc_name), 然后将它转换成拼音,再或者拼接上IP地址,以便更准确的识别.例 ...
- Java汉字转拼音(全拼、首字母拼)
Java汉字转拼音(全拼.首字母拼) public class ChineseToEnglish { /*** 汉字转拼音* @param src* @return*/public static St ...
最新文章
- winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法。
- python实现登录网站下载文件-Python爬虫 登录网页后下载图片,怎么保持登录状态?...
- MVC基于角色权限控制--用户管理
- 最近学习linux-c的编程
- HDU1290 献给杭电五十周年校庆的礼物 平面分割空间问题
- docker+httpd的安装
- 总结redis中对象的类型与编码
- 《C++ Primer Plus(第六版)》(13)(第九章 内存模型和命名空间 笔记)
- LeetCode 2197. 替换数组中的非互质数(栈)
- 报告漏洞后 马斯克宣布撤回FSD Beta 10.3版本
- dnf最新地图编号2020_2020手游崛起端游没落?网易新端游好玩刺激能搬砖,网友:妙...
- 美团面经-java开发
- java字面量和符号引用_JVM中的直接引用和符号引用
- 【动态规划】P1048 01背包问题:采药
- windows 不能在本地计算机启动SqlServer. 参考特定服务错误代码10048
- java编译运行_如何编译运行一个简单的java程序
- 前端福利!layui可视化布局
- Detail-revealing Deep Video Super-resolution 论文笔记
- Gabor变换(2)
- java的ide是什么_什么是IDE,java开发的ide是什么?
热门文章
- 精益管理的几大核心理念
- 35岁的软件测试从业人员还有出路?听10年测试老鸟易哥怎么说!
- JBoss学习和应用
- SpringCloud-Gateway配置及持久化、过滤器、异常处理
- Echarts通用饼图、柱状图、折线图封装
- 最牛逼 Java 日志框架 — Log4j2,性能无敌,横扫对手.....
- c语言顺序线性表的实现
- SAP 消息号 F5113 科目确认没有对交易. SKE (在会计科目表 XXXX 中)定义
- word文件中表格迁移到excel
- 国际快递的寄件流程是什么,寄国际快递常见的问题有哪些