java方式将汉字转成拼音

/**
* 需要一个开源的jar包pinyin4j-2.5.0.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;

/**
* @author Administrator
*将中文转换成拼音
*/
public class CnToPinyin {

/**
* 
*/
public CnToPinyin() {
// TODO Auto-generated constructor stub
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getPingYin("赵思远")); 
System.out.println(getPinYinHeadChar("赵思远")); 
System.out.println(getCnASCII("赵思远")); 


}
// 将汉字转换为全拼 
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(); 
} 



} 
 

猜你喜欢

转载自woshixushigang.iteye.com/blog/1421732