博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pinyin4j新手教程
阅读量:4342 次
发布时间:2019-06-07

本文共 3115 字,大约阅读时间需要 10 分钟。

Pinyin4j新手教程

 

 

pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min ()。

下面是一些详细的介绍和使用方式。

 

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

执行结果:我是中国人! 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.       汉语言的罗马化

3.       Wiki: 威妥瑪拼音(维基百科)

http://wapedia.mobi/zh/%E5%A8%81%E5%A6%A5%E7%8E%9B%E6%8B%BC%E9%9F%B3

转载于:https://www.cnblogs.com/zfyouxi/p/4671898.html

你可能感兴趣的文章
Hdu【线段树】基础题.cpp
查看>>
时钟系统
查看>>
BiTree
查看>>
5个基于HTML5的加载动画推荐
查看>>
水平权限漏洞的修复方案
查看>>
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
ajax跨域,携带cookie
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>