`
icyheart
  • 浏览: 764403 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

将汉语转换成拼音(全拼和缩写)

    博客分类:
  • J2SE
阅读更多

程序里面用到了开源的包,可以将汉语转成全拼或者缩写,代码如下:

/** 
* author:qiaolei
* 2010-6-25上午11:44:21create 
*/ 
package com.sucre;

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("綦江县"));
 }
结果如下:
qijiangxian
qjx
f4ebbdadcfd8

}

 

所需要的jar包见附件

 

3
2
分享到:
评论
2 楼 woniu1983 2010-06-29  
Mark 下, 收了
1 楼 sishuien 2010-06-29  
不错,有用的小知识

相关推荐

Global site tag (gtag.js) - Google Analytics