java 汉字转拼音
jar包
pinyin4j-2.5.0.jar
代码:
package com.cn;
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 PinYin {
public static String getPinYin(String inputString) {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
/**
* 输出 小写 LOWERCASE
* 大写 UPPERCASE
*/
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
/**
* 输出
* u WITH_U_AND_COLON
* v WITH_V
* ü WITH_U_UNICODE
*/
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
/**
* 输出 声调 WITH_TONE_MARK
* 数字 WITH_TONE_NUMBER
* 无声调 WITHOUT_TONE
*/
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
char[] input = inputString.trim().toCharArray();
StringBuffer output = new StringBuffer();
try {
for (int i = 0; i < input.length; i++) {
if (Character.toString(input[i]).matches("[\u4E00-\u9FA5]+")) {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(
input[i], format);
//for(String str:temp){
output.append(temp[0]);
output.append(" ");
//}
} else
output.append(Character.toString(input[i]));
}
} catch (Exception e) {
e.printStackTrace();
}
//return output.toString().replaceAll("\\W", "").trim();
return output.toString();
}
public static void main(String[] args) {
String chs = "安卓!";
System.out.println(chs);
//System.out.println(getFirstSpell(chs));
System.out.println(getPinYin(chs));
//System.out.println(discountTheChinese(chs));
}
}
输出结果