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;
/**
* @ClassName:PinYinUtil
* @Description:
* @date 2019-08-07 18:37
*/
public class PinYinUtil { /**
/**
* 漢字轉換爲大寫拼音(第一個字母)
* 我就是我->WJSW
*/
public static String toUpFirstPinYin(String hanZhi) {
String pinYin = "";
char[] ch = hanZhi.toCharArray();
for (char item : ch) {
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
String[] stringArray = new String[0];
try {
stringArray = PinyinHelper.toHanyuPinyinStringArray(item, outputFormat);
} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
badHanyuPinyinOutputFormatCombination.printStackTrace();
}
if (stringArray.length == 0) {
//處理字符不是漢字的情況
pinYin += item;
} else {
pinYin += stringArray[0].toCharArray()[0];
}
}
return pinYin;
}
/**
* 漢字轉換爲拼音
* 我就是我->wojiushiwo
*/
public static String toPinYin(String hanZhi) throws BadHanyuPinyinOutputFormatCombination {
String pinYin = "";
char[] ch = hanZhi.toCharArray();
for (char item : ch) {
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
String[] stringArray = PinyinHelper.toHanyuPinyinStringArray(item, outputFormat);
if (stringArray.length == 0) {
//處理字符不是漢字的情況
pinYin += item;
} else {
pinYin += stringArray[0];
}
}
return pinYin;
}
// 解釋
public static void test() {
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
// UPPERCASE:大寫 (ZHONG)
// LOWERCASE:小寫 (zhong)
outputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
// WITHOUT_TONE:無音標 (zhong)
// WITH_TONE_NUMBER:1-4數字表示英標 (zhong4)
// WITH_TONE_MARK:直接用音標符(必須WITH_U_UNICODE否則異常) (zhòng)
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
// WITH_V:用v表示ü (nv)
// WITH_U_AND_COLON:用"u:"表示ü (nu:)
// WITH_U_UNICODE:直接用ü (nü)
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
}
}
漢字轉拼音首字母或則全拼工具類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.