pinyin4j學習
1、首先下載pinyin4j的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 Ping4jTest {
//將漢字轉化為全拼
public static String getPinyin(String src){
char toChar[]=src.toCharArray();
String[] toCharCp=new String[toChar.length];
HanyuPinyinOutputFormat hanyuFormat=new HanyuPinyinOutputFormat();
hanyuFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
hanyuFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
hanyuFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
String ret="";
int to=toChar.length;
try {
for(int i=0;i<to;i++){
//判斷是否為漢字字符
if(java.lang.Character.toString(toChar[i]).matches("[\\u4E00-\\u9FA5]+")){
toCharCp=PinyinHelper.toHanyuPinyinStringArray(toChar[i], hanyuFormat);
ret+=toCharCp[0];
}else{
ret=java.lang.Character.toString(toChar[i]);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return ret;
}
//----------------------------------------返回中文的首字母--------------------
public static String getPinYinHeadChar(String str){
String convert="";
for (int i = 0; i < str.length(); i++) {
char word=str.charAt(i);
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++) {
strBuf.append(Integer.toHexString(bGBK[i]&0xff));
}
return strBuf.toString();
}
//--------------------------測試拼音轉漢字是否正確----------------------------
public static void main(String[] args){
System.out.println(getPinyin("西安"));
//返回拼音的全拼樣式
System.out.println(getPinYinHeadChar("西安"));
//返回拼音的首字母
System.out.println(getCnASCII("西安"));
//返回拼音的ASCII
System.out.println();
}
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!