java获取中文拼音码
/** * 返回中文的首字母 */ public static String getPinYinHeadChar(String str) { String sb = ""; for (int j = 0; j < str.length(); j++) { char word = str.charAt(j); String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word); if (pinyinArray != null) { sb += pinyinArray[0].charAt(0); } else { sb += word; } } return sb; }
/** * 获取中文拼音首字母,英文字符不变(简拼) * @param str 中文字符串 * @return 中文拼音首字母 */ public static String getFirstSpell(String str) { HanyuPinyinOutputFormat pyFormat = new HanyuPinyinOutputFormat(); pyFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); pyFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); StringBuffer sb = new StringBuffer(); char[] arr = str.toCharArray(); for (int i = 0; i < arr.length; i++) { if (arr[i] > 128) { try { String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], pyFormat); if (temp != null) { sb.append(temp[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { sb.append(arr[i]); } } return sb.toString().replaceAll("\\W", "").trim(); }
/** * 获取中文拼音,英文字符不变(全拼) * @param str 中文字符串 * @return 中文拼音 */ public static String getFullSpell(String str) { HanyuPinyinOutputFormat pyFormat = new HanyuPinyinOutputFormat(); pyFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); pyFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); StringBuffer sb = new StringBuffer(); char[] arr = str.toCharArray(); for (int i = 0; i < arr.length; i++) { if (arr[i] > 128) { try { sb.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], pyFormat)[0]); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { sb.append(arr[i]); } } return sb.toString(); }
/** * 将字符串中的中文转化为拼音,其他字符不变 * @param str */ public static String getPingYin(String str) { HanyuPinyinOutputFormat pyFormat = new HanyuPinyinOutputFormat(); pyFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); pyFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); pyFormat.setVCharType(HanyuPinyinVCharType.WITH_V); char[] input = str.trim().toCharArray(); String sb = ""; try { for (int i = 0; i < input.length; i++) { if (Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) { String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], pyFormat); sb += temp[0]; } else sb += Character.toString(input[i]); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return sb; }