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.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-...
"汉字转拼音库pinyin4j"便是这样一个工具,它提供了方便的API,使得开发者可以轻松地在Java程序中实现汉字到拼音的转换。 Pinyin4j是一个开源的Java库,由Barry DeZeng开发,它的主要功能就是将汉字转换成汉语拼音...
JAVA源码中文转拼音库pinyin4j
java资源中文转拼音库 pinyin4j提取方式是百度网盘分享地址
《Java中的中文转拼音库——Pinyin4j详解》 在Java编程中,处理中文字符时,有时我们需要将中文转化为拼音,以便进行后续的文本处理或搜索操作。Pinyin4j是一个广泛使用的Java库,专门用于实现这个功能。本文将详细...
《Java源码解析:pinyin4j中文转拼音库》 在Java开发中,处理中文字符,特别是将中文转换为拼音的需求广泛存在。pinyin4j是一个经典的Java库,专门用于实现这一功能。这个库简单易用,适用于各种场景,如搜索引擎...
**Java中的中文转拼音库——pinyin4j** 在Java编程中,处理中文字符时,有时需要将中文转换为拼音,以便进行各种文本处理任务,如关键词提取、搜索引擎优化等。`pinyin4j`是一个专门为此目的设计的开源库。这个库...
【标题】"基于Java的实例源码-中文转拼音库 pinyin4j.zip" 提供的是一个用Java语言实现的中文转拼音的工具库——Pinyin4j的源代码。这个库广泛应用于需要将中文字符转化为拼音的场景,如搜索引擎索引、文本处理或...
总的来说,`pinyin4j-2.5.0.jar`是一个强大而易用的Java拼音工具,对于需要处理中文字符的应用来说,它是一个不可或缺的助手。通过理解和熟练运用这个库,开发者可以更高效地实现汉字与拼音之间的转换,提高程序的...
pinyin4j是一个专门用于Java平台的开源库,它提供了方便的API,能够帮助开发者快速实现中文到拼音的转换。在处理地址和人名等特定场景下,pinyin4j-2.5.0.jar表现出了极高的实用价值。 pinyin4j-2.5.0.jar是pinyin4...
总之,pinyin4j作为一个强大的中文转拼音库,极大地便利了Java开发者处理与中文拼音相关的任务。无论是简单的基础转换还是复杂的应用场景,pinyin4j都能提供高效且稳定的解决方案。在实际开发中,了解并掌握pinyin4j...
**中文转拼音库 pinyin4j** pinyin4j 是一个专门为Java开发的开源库,其主要功能是将中文字符转换为对应的汉语拼音。在处理中文数据时,尤其是在进行文本检索、语音合成或者数据分析等场景下,这个库非常实用。...
《pinyin4j-2.5.0.jar:Java实现汉字转拼音的高效工具》 在信息化时代,处理中文字符成为许多开发者的必备技能。在Java编程语言中,pinyin4j是一个非常实用的库,它能将汉字转换为拼音,从而解决了在处理汉字排序、...
总的来说,"java拼音搜索pinyin4j"这个项目结合了Java Web开发的基础知识和汉字拼音处理的专业工具,通过Servlet三层架构实现了一个高效的中文搜索功能。开发者可以在这个基础上进一步扩展,如增加拼音排序、语音...
总之,"汉语转拼音之pinyin4j 通用类" 是Java开发中处理汉字到拼音转换的一个强大工具,它提供了丰富的功能,易于集成,并能适应各种复杂的中文处理需求。无论是初学者还是经验丰富的开发者,都可以从中受益,提高...
完整的汉字转拼音代码,可以转多种类型,转全拼音或者转第一个字为全拼音,后面取首字母和Jar包
《汉字转拼音:pinyin4j-jar工具详解》 在信息技术领域,处理中文字符时,经常需要将汉字转换为拼音,以便进行各种文本处理任务,如搜索、语音合成等。pinyin4j是一个广泛使用的Java库,专门用于实现这个功能。本文...
本文档主要介绍如何使用`pinyin4j`库实现Java程序中的汉字到拼音的转换,并着重讲解如何控制转换后拼音的大小写形式。`pinyin4j`是一款功能强大的开源库,能够帮助开发者轻松地将中文字符转换成相应的拼音形式。这...
pinyin4j是一个广受欢迎的Java库,它提供了高效、便捷的汉字转拼音功能。然而,对于某些特定的应用场景,原版的pinyin4j可能显得过于庞大或者复杂。为此,有人对pinyin4j 2.5版本进行了简化,旨在提高性能并降低使用...
`pinyin4j`是由Barry Zhang开发的一个开源项目,它提供了一套简洁的API,使得在Java或Android项目中集成汉字转拼音功能变得简单。该库不仅适用于标准Java环境,还兼容Android平台,因此在移动开发中也十分适用。 要...