平常是處理文字的時候更多用到的是字元串方面的工具類,作為學習漢字的工具,拼音還是很重要的一個輔助方式,分享一個漢字轉拼音的工具類。可以用於幫助學習漢字或者作為一些漢字的輔助說明都也是可以的。這個還支持將漢字拼音輸出為首字母,例如"愷龍"可以輸出為"kl",在現在大家很多時候都用縮寫的情況下,可以也可 ...
平常是處理文字的時候更多用到的是字元串方面的工具類,作為學習漢字的工具,拼音還是很重要的一個輔助方式,分享一個漢字轉拼音的工具類。可以用於幫助學習漢字或者作為一些漢字的輔助說明都也是可以的。這個還支持將漢字拼音輸出為首字母,例如"愷龍"可以輸出為"kl",在現在大家很多時候都用縮寫的情況下,可以也可以作為一個輔助的工具。
該工具類用到了pinyin4j-2.5.0.jar包
包下載地址:
網盤下載:https://kohler.lanzouv.com/i3bQG0g2imkj
Maven中央庫:https://mvnrepository.com/artifact/org.clojars.cbilson/pinyin4j/2.5.0
完整代碼:
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 GetPinyin {
/**
* 得到 全拼
* @Param src
* @return
*/
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);
StringBuffer t4 = new StringBuffer();
int t0 = t1.length;
try {
for (char c : t1) {
// 判斷是否為漢字字元
if (Character.toString(c).matches(
"[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(c, t3);
t4.append(t2[0]);
} else {
t4.append(Character.toString(c));
}
}
return t4.toString();
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return t4.toString();
}
/**
* 得到中文首字母
* @param str
* @return
*/
public static String getPinYinHeadChar(String str) {
StringBuffer convert = new StringBuffer();
for (int j = 0; j < str.length(); j++) {
char word = str.charAt(j);
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
if (pinyinArray != null) {
convert.append(pinyinArray[0].charAt(0));
} else {
convert.append(word);
}
}
return convert.toString();
}
public static void main(String[] args) {
String cnStr = "快關註愚生淺末";
System.out.println(getPingYin(cnStr));
System.out.println(getPinYinHeadChar(cnStr));
}
}
運行效果:
公眾號原文地址:https://mp.weixin.qq.com/s/K0tBRnV0X8yy2OJY5Okt-A
歡迎關註公眾號:愚生淺末。