首页 > 代码库 > 汉字转换成拼音-pinyin4j.jar的使用

汉字转换成拼音-pinyin4j.jar的使用

package com.mummy.page;
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;
/**
 * pinyin4j 工具包
 * 
 * @author Administrator
 * 
 */
public class PinYinUtil {
 public static void main(String[] args) {
  String str = "痤疮   ";
  System.out.println(getFirstSpell(str));
 }
 /**
  * 获取汉字串拼音首字母,英文字符不变
  * 仅输出字符和数字
  * 
  * @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();
 }
}

控制台输出:ygss

汉字转换成拼音-pinyin4j.jar的使用