需要 pinyin4j-2.5.0.jar 包
代码例子
package cn.java.pinyin4j; 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; /** * pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库 */ public class Test { public static void main(String[] args) { System.out.println("中文a1".toCharArray().length); // = 4 String chs = "我是中国人! I‘m Chinese!"; System.out.println(chs); System.out.println(getPinYin1(chs)); System.out.println(getPinYin2(chs)); } public static String getPinYin1(String inputString) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK); format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE); 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); output.append(temp[0]); output.append(" "); } else output.append(Character.toString(input[i])); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return output.toString(); } public static String getPinYin2(String inputString) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE); 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); output.append(temp[0]); output.append(" "); } else output.append(Character.toString(input[i])); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return output.toString(); } }
输出结果
4
我是中国人! I‘m Chinese!
w? shì zhōng guó rén ! I‘m Chinese!
wo shi zhong guo ren ! I‘m Chinese!
原文:http://www.cnblogs.com/xiaoyaogege/p/6305774.html