`
lily200825
  • 浏览: 46572 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 之 中文转拼音库 pinyin4j

    博客分类:
  • java
 
阅读更多
java 之 中文转拼音库 pinyin4j

Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。
拼音输出格式可以定制。
pinyin4j 调用入口为net.sourceforge.pinyin4j.PinyinHelper

示例代码:
1.PinyinUtils.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.exception.BadHanyuPinyinOutputFormatCombination;

/**
 * 汉语拼音 帮助类
 * 
 * @author lili
 * 
 */
public class PinyinUtils {
	/**
	 * 获取汉字串拼音
	 * @param strCN
	 * @return 汉字串拼音
	 * @throws BadHanyuPinyinOutputFormatCombination
	 */
	public static String getHanyuPinyin(String strCN)
			throws BadHanyuPinyinOutputFormatCombination {
		if(null == strCN){
			return null;
		}
		StringBuffer spell = new StringBuffer();
		char[] charOfCN = strCN.toCharArray();
		HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
		defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		for (int i = 0; i < charOfCN.length; i++) {
			// 是否为中文字符
			if (charOfCN[i] > 128) {
				String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(
						charOfCN[i], defaultFormat);
				if (null != spellArray) {
					spell.append(spellArray[0]);
				}else{
					spell.append(charOfCN[i]);
				}
			} else {
				spell.append(charOfCN[i]);
			}
		}
		return spell.toString();
	}
	/**
	 * 获取汉字串 拼音首字母
	 * @param strCN
	 * @return  拼音首字母
	 * @throws BadHanyuPinyinOutputFormatCombination
	 */
	public static String getFirstHanyuPinyin(String strCN)
			throws BadHanyuPinyinOutputFormatCombination {
		if(null == strCN){
			return null;
		}
		StringBuffer firstSpell = new StringBuffer();
		char[] charOfCN = strCN.toCharArray();
		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		for (int i = 0; i < charOfCN.length; i++) {
			// 是否为中文字符
			if (charOfCN[i] > 128) {
				String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(
						charOfCN[i], format);
				// 取拼音首字母
				if (null != spellArray) {
					firstSpell.append(spellArray[0].charAt(0));
				}else{
					firstSpell.append(charOfCN[i]);
				}
			} else {
				firstSpell.append(charOfCN[i]);
			}
		}
		return firstSpell.toString();
	}
	/**
	 * 获取 汉字串拼音首字母 & 汉字串拼音
	 * 
	 * @param strCN
	 * @return 下标0:汉字串拼音首字母;下标1:汉字串拼音
	 * @throws BadHanyuPinyinOutputFormatCombination
	 */
	public static String[] getFirstAndHanyuPinyin(String strCN)
			throws BadHanyuPinyinOutputFormatCombination {
		if(null == strCN){
			return null;
		}
		StringBuffer firstSpell = new StringBuffer();
		StringBuffer spell = new StringBuffer();
		char[] charOfCN = strCN.toCharArray();
		HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
		defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		for (int i = 0; i < charOfCN.length; i++) {
			// 是否为中文字符
			if (charOfCN[i] > 128) {
				String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(
						charOfCN[i], defaultFormat);
				if (null != spellArray) {
					firstSpell.append(spellArray[0].charAt(0));
					spell.append(spellArray[0]);
				}else{
					firstSpell.append(charOfCN[i]);
					spell.append(charOfCN[i]);
				}
			} else {
				firstSpell.append(charOfCN[i]);
				spell.append(charOfCN[i]);
			}
		}
		return new String[] { firstSpell.toString(), spell.toString() };
	}
	
}



2.测试
import java.util.Arrays;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

import com.ws.util.PinyinUtils;

public class Test {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			testPinyin();
		} catch (BadHanyuPinyinOutputFormatCombination e1) {
			e1.printStackTrace();
		}
	}
	static void testPinyin() throws BadHanyuPinyinOutputFormatCombination{
		String pinyin = null;
		String [] firstAndPinyin = null;
		String s = "< 中國-China-중국 >";
		
		pinyin = PinyinUtils.getFirstHanyuPinyin( s);
		System.err.println("getFirstHanyuPinyin("+s+")......["+pinyin+"]");
		
		pinyin = PinyinUtils.getHanyuPinyin( s);
		System.err.println("getHanyuPinyin("+s+")......["+pinyin+"]");
		
		firstAndPinyin = PinyinUtils.getFirstAndHanyuPinyin( s);
		System.err.println("getFirstAndHanyuPinyin("+s+")......"+Arrays.asList(firstAndPinyin));
	}
	
}


pinyin4j.jar 下载地址http://download.csdn.net/detail/lily200825/4038514
分享到:
评论

相关推荐

    汉字转换拼音 java

    例如,使用Pinyin4j库,只需引入依赖,然后通过调用特定方法,就能快速地将汉字转换为拼音。下面是一个简单的示例: ```java import net.sourceforge.pinyin4j.PinyinHelper; public class HanziToPinyin { ...

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

    在Java中实现汉字转拼音,通常会用到第三方库,如`Pinyin4j`。`Pinyin4j`是一个流行的Java库,专门用于处理汉字与拼音之间的转换,包括多音字的支持。使用这个库,开发者可以方便地获取汉字的声母、韵母以及声调等...

    java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII

    `Pinyin4j`是一个强大的Java库,能够将汉字转换为汉语拼音,并支持多音字和声调。以下是一个简单的使用示例: ```java import net.sourceforge.pinyin4j.PinyinHelper; import ...

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

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

    java汉字转拼音(全拼和首字母)

    在Java编程语言中,汉字转拼音是一项常见的需求,特别是在处理中文数据、搜索引擎优化或文本处理等领域。本篇文章将深入探讨如何使用Java实现汉字转拼音的功能,包括获取汉字的全拼和首字母。 首先,我们需要理解...

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

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

    汉字转拼音、首字母、多音字java

    总的来说,Java中的汉字转拼音、首字母获取以及多音字处理主要依赖于像`pinyin4j`这样的第三方库,它们提供了丰富的功能,使得开发者能方便地进行中文字符的拼音处理。在实际项目中,正确理解和运用这些工具,可以...

    JAVA源码中文转拼音库pinyin4j

    JAVA源码中文转拼音库pinyin4j

    [pinyin4j]java版汉字转换拼音大小写

    本文档主要介绍如何使用`pinyin4j`库实现Java程序中的汉字到拼音的转换,并着重讲解如何控制转换后拼音的大小写形式。`pinyin4j`是一款功能强大的开源库,能够帮助开发者轻松地将中文字符转换成相应的拼音形式。这...

    java实现中文转拼音

    首先,Java中实现中文转拼音主要依赖于第三方库,如Pinyin4j或HanyuPinyin等。Pinyin4j是一个广泛使用的Java库,它提供了方便的方法来获取汉字的拼音表示。下面是一段简单的使用Pinyin4j库将中文转换为拼音的示例...

    利用Java开源库把汉字转拼音

    pinyin4j是一个支持将中文转换到拼音的Java开源类库。 支持简体中文和繁体中文字符; 支持转换到汉语拼音,通用拼音, 威妥玛拼音(威玛拼法), 注音符号第二式, 耶鲁拼法和国语罗马字; 支持多音字,即可以获取一...

    java资源中文转拼音库pinyin4j

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

    java将汉字转为拼音

    其中一个广泛应用的库是Pinyin4j,它是一个轻量级的Java库,专门用于处理汉字与拼音之间的转换。安装Pinyin4j非常简单,只需要将其jar文件添加到项目的类路径中。 在使用Pinyin4j库之前,确保已经下载并引入了该库...

    java后台汉字转拼音

    首先,Java中并没有内置的库直接支持汉字到拼音的转换,因此我们需要借助第三方库,如Pinyin4j、Apache Commons Lang3等。Pinyin4j是一个流行的Java库,专门用于处理中文字符并将其转换为拼音。Apache Commons Lang3...

    将汉字转换成拼音 java 源码

    - **Pinyin4j** 是一个强大的Java库,主要用于将中文汉字转换为拼音,同时支持多种配置选项来调整输出格式。 - 这个库提供了一系列工具类和枚举类型来帮助开发者定制拼音的输出方式,例如是否带有声调、拼音首字母大...

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

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

    JAVA 汉字转换拼音

    总的来说,Java中的汉字转拼音通过pinyin4j库变得非常简单,只需要正确引入库并编写一些辅助方法,就可以轻松地在程序中实现汉字与拼音之间的转换。这在处理中文数据时非常有用,能够帮助开发出更加适应中国用户的...

    java汉字转拼音

    总的来说,Java汉字转拼音是处理中文文本的关键技术之一,它涉及了字符编码、自然语言处理和库的使用。通过使用现有的开源库,开发者可以轻松地在Java项目中实现这一功能,从而满足各种应用场景的需求。

    汉字转拼音库pinyin4j

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

    java 汉字转成拼音

    Java标准库并没有内置汉字转拼音的功能,所以我们需要依赖第三方库,如Pinyin4j、HanLP、jieba-pinyin等。 1. **Pinyin4j**:这是一个流行的Java库,它提供了简单的API来获取汉字的拼音。例如,我们可以使用`org....

Global site tag (gtag.js) - Google Analytics