`

Java汉字转拼音库,Pinyin4j

阅读更多

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

       

1.pinyin4j的官方下载地址http://sourceforge.net/projects/pinyin4j/files/

       

       

2.下载解压后的目录结构及说明如下

  

 

(1)    doc : pinyin4japi文档

(2)    lib : pinyin4jjar

(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

第三个下拉框是控制生成的拼音是以大写方式显示还是以小写方式显示,以汉字示例如下:

LOWERCASEguó

UPPERCASEGUÓ

上图的汉字转化成拼音后,有六种显示方式,这是因为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];
				} else
					output += 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

 

       

 

  • 大小: 37.3 KB
  • 大小: 2.1 KB
  • 大小: 69.1 KB
1
1
分享到:
评论
1 楼 dove19900520 2014-03-09  
我想问一下,为什么它会把"这"译成"zhei",把"那"译成"nei"?

相关推荐

    基于java的开发源码-中文转拼音库 pinyin4j.zip

    基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-...

    汉字转拼音库pinyin4j

    "汉字转拼音库pinyin4j"便是这样一个工具,它提供了方便的API,使得开发者可以轻松地在Java程序中实现汉字到拼音的转换。 Pinyin4j是一个开源的Java库,由Barry DeZeng开发,它的主要功能就是将汉字转换成汉语拼音...

    java源码:中文转拼音库 pinyin4j.zip

    《Java源码解析:pinyin4j中文转拼音库》 在Java开发中,处理中文字符,特别是将中文转换为拼音的需求广泛存在。pinyin4j是一个经典的Java库,专门用于实现这一功能。这个库简单易用,适用于各种场景,如搜索引擎...

    java资源中文转拼音库pinyin4j

    java资源中文转拼音库 pinyin4j提取方式是百度网盘分享地址

    基于java的中文转拼音库 pinyin4j.zip

    《Java中的中文转拼音库——Pinyin4j详解》 在Java编程中,处理中文字符时,有时我们需要将中文转化为拼音,以便进行后续的文本处理或搜索操作。Pinyin4j是一个广泛使用的Java库,专门用于实现这个功能。本文将详细...

    基于Java的中文转拼音库 pinyin4j.zip

    **Java中的中文转拼音库——pinyin4j** 在Java编程中,处理中文字符时,有时需要将中文转换为拼音,以便进行各种文本处理任务,如关键词提取、搜索引擎优化等。`pinyin4j`是一个专门为此目的设计的开源库。这个库...

    基于Java的实例源码-中文转拼音库 pinyin4j.zip

    【描述】描述中的"基于Java的实例源码-中文转拼音库 pinyin4j.zip"强调了这是Pinyin4j库的源代码,它是一个开源项目,允许开发者深入理解其内部工作原理,并可以依据自身需求进行定制和扩展。Pinyin4j能够处理多音字...

    Java 汉字转拼音代码 pinyin4j-2.5.0.jar 下载

    完整的汉字转拼音代码,可以转多种类型,转全拼音或者转第一个字为全拼音,后面取首字母和Jar包

    中文转拼音库 pinyin4j.7z

    总之,pinyin4j作为一个强大的中文转拼音库,极大地便利了Java开发者处理与中文拼音相关的任务。无论是简单的基础转换还是复杂的应用场景,pinyin4j都能提供高效且稳定的解决方案。在实际开发中,了解并掌握pinyin4j...

    中文转拼音库 pinyin4j

    **中文转拼音库 pinyin4j** pinyin4j 是一个专门为Java开发的开源库,其主要功能是将中文字符转换为对应的汉语拼音。在处理中文数据时,尤其是在进行文本检索、语音合成或者数据分析等场景下,这个库非常实用。...

    中文转拼音工具类,pinyin4j-2.5.0.jar 适用于地址人名

    《中文转拼音工具类——pinyin4j-2.5.0.jar 在处理地址与人名中的应用》 在处理中文数据时,有时我们需要将汉字...通过合理利用pinyin4j提供的API,开发者可以极大地提高工作效率,简化涉及中文拼音转换的项目开发。

    pinyin4j-2.5.0.jar 下载 java汉字转拼音 jar包 附带超级简单小dome

    总的来说,pinyin4j-2.5.0.jar是一个强大且易用的Java库,它极大地简化了汉字与拼音之间的转换过程,是处理中文字符问题时不可或缺的工具。通过合理利用这个库,开发者可以更高效地实现各种基于拼音的业务逻辑,提升...

    汉字转拼音java pinyin4j-2.5.0.jar

    `pinyin4j-2.5.0.jar`是一个专门为Java设计的库,专门用于将汉字转换为拼音,且支持声调标记,极大地提高了处理效率和准确性。在这个库的帮助下,开发者无需关心复杂的汉字到拼音的映射规则,只需简单调用API即可...

    Java汉字转拼音(支持多音字)

    这个"Java汉字转拼音(支持多音字)"的主题涉及了如何在Java环境中实现这一功能,特别是考虑到中文的多音字特性。 多音字是指一个汉字有多个读音,其读音取决于它在特定语境中的含义。例如,“打”字可以读作“dǎ...

    汉语转拼音之pinyin4j 通用类

    1. **Pinyin4j库**:Pinyin4j是一个开源项目,由Barry De Zwart开发,它提供了一套简单易用的API,使得Java开发者可以方便地将汉字转换为对应的汉语拼音。这个库不仅适用于基础的拼音转换,还能处理复杂的场景,比如...

    使用pinyin4j的Java库进行汉字转拼音

    pinyin4j是一个开源的Java库,它提供了汉字和拼音之间的转换功能,包括将汉字字符串转换为全拼、提取每个汉字的首字母,以及将字符串转换成ASCII码等。这个库是基于java平台实现的,用户可以通过导入相关的jar包来...

    汉字转拼音jar包_pinyin4j(java)

    `pinyin4j`是由Barry Zhang开发的一个开源项目,它提供了一套简洁的API,使得在Java或Android项目中集成汉字转拼音功能变得简单。该库不仅适用于标准Java环境,还兼容Android平台,因此在移动开发中也十分适用。 要...

    pinyin4j的简化版 汉字转成拼音

    pinyin4j是一个广受欢迎的Java库,它提供了高效、便捷的汉字转拼音功能。然而,对于某些特定的应用场景,原版的pinyin4j可能显得过于庞大或者复杂。为此,有人对pinyin4j 2.5版本进行了简化,旨在提高性能并降低使用...

    Java汉字转拼音类库Pinyin4j详细使用方法与实例

    Java汉字转拼音类库Pinyin4j详细使用方法与实例 Pinyin4j是一个Java类库,用于将汉字转换为拼音。下面是Pinyin4j的详细使用方法与实例: 1.基本用法 Pinyin4j的使用非常方便,基本转换只需要使用PinyinHelper类的...

    java拼音搜索pinyin4j

    总的来说,"java拼音搜索pinyin4j"这个项目结合了Java Web开发的基础知识和汉字拼音处理的专业工具,通过Servlet三层架构实现了一个高效的中文搜索功能。开发者可以在这个基础上进一步扩展,如增加拼音排序、语音...

Global site tag (gtag.js) - Google Analytics