首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

应用pinyin4j获取汉字拼音首字母或全拼

2012-12-27 
使用pinyin4j获取汉字拼音首字母或全拼pinyin4j是一个开源项目,使用它可以很容易的获取汉字的拼音,这也是

使用pinyin4j获取汉字拼音首字母或全拼

pinyin4j是一个开源项目,使用它可以很容易的获取汉字的拼音,这也是我们经常需要用到的功能:下面是一个应用,获取汉字首字母或者全拼的方法

?

package com.yjck.pinyin.util;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;public class PinYinUtil {/**      * 获取汉字串拼音首字母,英文字符不变      * @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();     }     /**      * 获取汉字串拼音,英文字符不变      * @param chinese 汉字串      * @return 汉语拼音      */     public static String getFullSpell(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 {                                     pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);                             } catch (BadHanyuPinyinOutputFormatCombination e) {                                     e.printStackTrace();                             }                     } else {                             pybf.append(arr[i]);                     }             }             return pybf.toString();     }}

? ok,这就完了,已经可以满足我们的日常需求了吧,源代码上传!

1 楼 倔强的土豆 2012-10-11   很棒。。。

热点排行