Java工具类——汉字转拼音
本帖最后由 wangbyn 于 2022-11-16 17:56 编辑写了一个根据汉字获取拼音字符串的工具类,需要用到pinyin4j-2.5.0.jar包。
废话不多说上代码。
package com.xxx.util;
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 wangbyn
*/
public class GetPinyin {
/**
* 得到 全拼
* @Param src
* @return
*/
public static String getPingYin(String src) {
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String;
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);
} 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.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));
}
}
感谢分享不错!谢谢 多音字咋办,,,重庆 重量 感谢分享不错!谢谢。学习。 请问一下像饥饿 转成拼音会不会有误解 感谢分享不错!谢谢楼至 感谢楼主的分享! 谢谢楼主分享
学习了,谢谢分享!
页:
[1]
2