欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java方式将汉字转成拼音

程序员文章站 2022-05-19 20:00:04
...
/**
* 需要一个开源的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(); 
} 



}