java代码将汉字转换成拼音

来源:互联网 发布:淘宝账号取消手机绑定 编辑:程序博客网 时间:2024/05/01 17:55

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

  }

  }

原文链接: http://java.chinaitlab.com/base/...

原创粉丝点击