pinyin4j: http://sourceforge.net/projects/pinyin4j/files/
/** * 汉字转拼音首字母,英文字符不变 **/ public static void converToFirstWord(){ String chinese="你好啊a"; StringBuilder pinyinName = new StringBuilder(); char[] nameChar = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 127) { try { pinyinName.append(PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0)); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinName.append(nameChar[i]); } } System.out.println(pinyinName.toString()); }
/** * 汉字转拼音,英文字符不变 **/ public static String converToWholeWord(){ String chinese="你好啊a"; StringBuilder pinyinName= new StringBuilder(); char[] nameChar = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName.append(PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0]); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinName.append(nameChar[i]); } } return pinyinName.toString(); }