Java代碼將漢字轉換成拼音 – JAVA編程語言程序開發技術文章

package com.sucre;

  //導入的jar包

  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.HanyuPinyinVCharType;

  import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

  public class ChineseToEnglish

  {

  //————————將漢字轉換為全拼——————————-

  public static String getPingYin(String src){

  char[] t1 = null;

  t1=src.toCharArray();

  String[] t2 = new String[t1.length];

  HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();

  t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);

  t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

  t3.setVCharType(HanyuPinyinVCharType.WITH_V);

  String t4="";

  int t0=t1.length;

  try {

  for (int i=0;i<t0;i++){

  //判斷是否為漢字字符

  if(Java' target='_blank'>java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")){

  t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);

  t4+=t2[0];

  }else{

  t4+=java.lang.Character.toString(t1[i]);

  }

  }

  //System.out.println(t4);

  return t4;

  }catch (BadHanyuPinyinOutputFormatCombination e1){

  e1.printStackTrace();

  }

  return t4;

  }

 

//—————————————-返回中文的首字母——————–

  public static String getPinYinHeadChar(String str) {

  String convert = "";

  for (int j = 0; j < str.length(); j++){

  char word = str.charAt(j);

  String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);

  if(pinyinArray != null){

  convert += pinyinArray[0].charAt(0);

  }else{

  convert += word;

  }

  }

  return convert;

  }

  //————————-將字符串轉移為ASCII碼—————————–

  public static String getCnASCII(String cnStr){

  StringBuffer

  strBuf

  =

  new

  StringBuffer();

  byte[]

  bGBK

  =

  cnStr.getBytes();

  for(int

  i=0;i <bGBK.length;i++){

  //System.out.println(Integer.toHexString(bGBK[i]&0xff));

  strBuf.append(Integer.toHexString(bGBK[i]&0xff));

  }

  return strBuf.toString();

  }

  //————————–測試拼音轉漢字是否正確—————————-

  public static void main(String[] args){

  System.out.println(getPingYin("西安市"));

  //返回拼音的全拼樣式

  System.out.println(getPinYinHeadChar("西安市"));

  //返回拼音的首字母

  System.out.println(getCnASCII("西安市"));

  //返回拼音的ASCII

  }

  }

 

摘自 黑黑博客

發佈留言