`

java 之 中文转拼音库 pinyin4j 转

    博客分类:
  • JAVA
 
阅读更多


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

示例代码: 
1.PinyinUtils.java 

Java代码  收藏代码
  1. import net.sourceforge.pinyin4j.PinyinHelper;  
  2. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;  
  3. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;  
  4. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;  
  5. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;  
  6.   
  7. /** 
  8.  * 汉语拼音 帮助类 
  9.  *  
  10.  * @author lili 
  11.  *  
  12.  */  
  13. public class PinyinUtils {  
  14.     /** 
  15.      * 获取汉字串拼音 
  16.      * @param strCN 
  17.      * @return 汉字串拼音 
  18.      * @throws BadHanyuPinyinOutputFormatCombination 
  19.      */  
  20.     public static String getHanyuPinyin(String strCN)  
  21.             throws BadHanyuPinyinOutputFormatCombination {  
  22.         if(null == strCN){  
  23.             return null;  
  24.         }  
  25.         StringBuffer spell = new StringBuffer();  
  26.         char[] charOfCN = strCN.toCharArray();  
  27.         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();  
  28.         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
  29.         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
  30.         for (int i = 0; i < charOfCN.length; i++) {  
  31.             // 是否为中文字符  
  32.             if (charOfCN[i] > 128) {  
  33.                 String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(  
  34.                         charOfCN[i], defaultFormat);  
  35.                 if (null != spellArray) {  
  36.                     spell.append(spellArray[0]);  
  37.                 }else{  
  38.                     spell.append(charOfCN[i]);  
  39.                 }  
  40.             } else {  
  41.                 spell.append(charOfCN[i]);  
  42.             }  
  43.         }  
  44.         return spell.toString();  
  45.     }  
  46.     /** 
  47.      * 获取汉字串 拼音首字母 
  48.      * @param strCN 
  49.      * @return  拼音首字母 
  50.      * @throws BadHanyuPinyinOutputFormatCombination 
  51.      */  
  52.     public static String getFirstHanyuPinyin(String strCN)  
  53.             throws BadHanyuPinyinOutputFormatCombination {  
  54.         if(null == strCN){  
  55.             return null;  
  56.         }  
  57.         StringBuffer firstSpell = new StringBuffer();  
  58.         char[] charOfCN = strCN.toCharArray();  
  59.         HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();  
  60.         format.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
  61.         format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
  62.         for (int i = 0; i < charOfCN.length; i++) {  
  63.             // 是否为中文字符  
  64.             if (charOfCN[i] > 128) {  
  65.                 String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(  
  66.                         charOfCN[i], format);  
  67.                 // 取拼音首字母  
  68.                 if (null != spellArray) {  
  69.                     firstSpell.append(spellArray[0].charAt(0));  
  70.                 }else{  
  71.                     firstSpell.append(charOfCN[i]);  
  72.                 }  
  73.             } else {  
  74.                 firstSpell.append(charOfCN[i]);  
  75.             }  
  76.         }  
  77.         return firstSpell.toString();  
  78.     }  
  79.     /** 
  80.      * 获取 汉字串拼音首字母 & 汉字串拼音 
  81.      *  
  82.      * @param strCN 
  83.      * @return 下标0:汉字串拼音首字母;下标1:汉字串拼音 
  84.      * @throws BadHanyuPinyinOutputFormatCombination 
  85.      */  
  86.     public static String[] getFirstAndHanyuPinyin(String strCN)  
  87.             throws BadHanyuPinyinOutputFormatCombination {  
  88.         if(null == strCN){  
  89.             return null;  
  90.         }  
  91.         StringBuffer firstSpell = new StringBuffer();  
  92.         StringBuffer spell = new StringBuffer();  
  93.         char[] charOfCN = strCN.toCharArray();  
  94.         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();  
  95.         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
  96.         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
  97.         for (int i = 0; i < charOfCN.length; i++) {  
  98.             // 是否为中文字符  
  99.             if (charOfCN[i] > 128) {  
  100.                 String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(  
  101.                         charOfCN[i], defaultFormat);  
  102.                 if (null != spellArray) {  
  103.                     firstSpell.append(spellArray[0].charAt(0));  
  104.                     spell.append(spellArray[0]);  
  105.                 }else{  
  106.                     firstSpell.append(charOfCN[i]);  
  107.                     spell.append(charOfCN[i]);  
  108.                 }  
  109.             } else {  
  110.                 firstSpell.append(charOfCN[i]);  
  111.                 spell.append(charOfCN[i]);  
  112.             }  
  113.         }  
  114.         return new String[] { firstSpell.toString(), spell.toString() };  
  115.     }  
  116.       
  117. }  



2.测试 

Java代码  收藏代码
  1. import java.util.Arrays;  
  2. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;  
  3.   
  4. import com.ws.util.PinyinUtils;  
  5.   
  6. public class Test {  
  7.     /** 
  8.      * @param args 
  9.      */  
  10.     public static void main(String[] args) {  
  11.         try {  
  12.             testPinyin();  
  13.         } catch (BadHanyuPinyinOutputFormatCombination e1) {  
  14.             e1.printStackTrace();  
  15.         }  
  16.     }  
  17.     static void testPinyin() throws BadHanyuPinyinOutputFormatCombination{  
  18.         String pinyin = null;  
  19.         String [] firstAndPinyin = null;  
  20.         String s = "< 中國-China-중국 >";  
  21.           
  22.         pinyin = PinyinUtils.getFirstHanyuPinyin( s);  
  23.         System.err.println("getFirstHanyuPinyin("+s+")......["+pinyin+"]");  
  24.           
  25.         pinyin = PinyinUtils.getHanyuPinyin( s);  
  26.         System.err.println("getHanyuPinyin("+s+")......["+pinyin+"]");  
  27.           
  28.         firstAndPinyin = PinyinUtils.getFirstAndHanyuPinyin( s);  
  29.         System.err.println("getFirstAndHanyuPinyin("+s+")......"+Arrays.asList(firstAndPinyin));  
  30.     }  
  31.       
  32. }  



pinyin4j.jar 下载地址http://download.csdn.net/detail/lily200825/4038514

分享到:
评论

相关推荐

    基于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

    JAVA源码中文转拼音库pinyin4j

    java资源中文转拼音库pinyin4j

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

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

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

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

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

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

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

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

    【标题】"基于Java的实例源码-中文转拼音库 pinyin4j.zip" 提供的是一个用Java语言实现的中文转拼音的工具库——Pinyin4j的源代码。这个库广泛应用于需要将中文字符转化为拼音的场景,如搜索引擎索引、文本处理或...

    汉字转拼音java pinyin4j-2.5.0.jar

    总的来说,`pinyin4j-2.5.0.jar`是一个强大而易用的Java拼音工具,对于需要处理中文字符的应用来说,它是一个不可或缺的助手。通过理解和熟练运用这个库,开发者可以更高效地实现汉字与拼音之间的转换,提高程序的...

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

    pinyin4j是一个专门用于Java平台的开源库,它提供了方便的API,能够帮助开发者快速实现中文到拼音的转换。在处理地址和人名等特定场景下,pinyin4j-2.5.0.jar表现出了极高的实用价值。 pinyin4j-2.5.0.jar是pinyin4...

    中文转拼音库 pinyin4j.7z

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

    中文转拼音库 pinyin4j

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

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

    《pinyin4j-2.5.0.jar:Java实现汉字转拼音的高效工具》 在信息化时代,处理中文字符成为许多开发者的必备技能。在Java编程语言中,pinyin4j是一个非常实用的库,它能将汉字转换为拼音,从而解决了在处理汉字排序、...

    java拼音搜索pinyin4j

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

    汉语转拼音之pinyin4j 通用类

    总之,"汉语转拼音之pinyin4j 通用类" 是Java开发中处理汉字到拼音转换的一个强大工具,它提供了丰富的功能,易于集成,并能适应各种复杂的中文处理需求。无论是初学者还是经验丰富的开发者,都可以从中受益,提高...

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

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

    汉字转拼音大小写全拼首字母pinyin4j-jar

    《汉字转拼音:pinyin4j-jar工具详解》 在信息技术领域,处理中文字符时,经常需要将汉字转换为拼音,以便进行各种文本处理任务,如搜索、语音合成等。pinyin4j是一个广泛使用的Java库,专门用于实现这个功能。本文...

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

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

    pinyin4j的简化版 汉字转成拼音

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

    汉字转拼音jar包_pinyin4j(java)

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

Global site tag (gtag.js) - Google Analytics