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.exception.BadHanyuPinyinOutputFormatCombination;
public class GetPY {
public static void main(String[] args) {
String chineseName = "荷花";
String[] pyStr = getPinyin(chineseName);
StringBuilder pyBuilder = new StringBuilder();
for (String s : pyStr) {
pyBuilder.append(s);
}
System.out.println(pyBuilder); // 输出拼音 hehua
}
/**
* java 将汉字转拼音
* @param humanName
* @return
*/
public static String[] getPinyin(String humanName) {
//定义汉字拼音的输出格式
HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();
//设置输出拼音的大小写 LOWERCASE--小写 UPPERCASE--大写
pinyinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
//设置是否带声调的拼音的显示 WITHOUT_TONE--无声调
pinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
//将传入参数转为字符数组
char[] chars = humanName.toCharArray();
//存放拼音字符
String[] pyArray = new String[humanName.length()];
for (int i = 0; i < chars.length; i++) {
char aChar = chars[i];
//判断是否为空白字符
if (Character.isWhitespace(aChar)) {
pyArray[i] = "";
} else if (aChar >= 0x4E00 && aChar <= 0x9FA5) { // 中文字符判断
try {
pyArray[i] = PinyinHelper.toHanyuPinyinStringArray(aChar, pinyinOutputFormat)[0];
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
pyArray[i] = "";
}
} else {
pyArray[i] = String.valueOf(aChar);
}
}
return pyArray;
}
}
java 将汉字转拼音
最新推荐文章于 2024-06-22 13:58:51 发布
本文介绍了一个Java方法,利用Pinyin4j库将输入的汉字转换为拼音,支持设置输出格式(小写或无声调),并展示了如何处理空白字符和非中文字符。
摘要由CSDN通过智能技术生成