汉字转拼音,汉字转拼音首字母~
下面的方法是在做项目的时候,从网上查了好久才得到的~虽然不是自己写的,但是也改的差不多了~放在这里供大家参考哈
/detail/feihongmin/8090633是汉字转拼音要使用的pinyin4j的jar包,可以从官网上下载的
/** * 汉字转换位全拼音,英文字符不变,其他符号忽略, * * @param chines *汉字 * @return 小写全拼 */ public static String getPingYin(String chines) { StringBuilder sb = new StringBuilder(); char[] nameChar = chines.toCharArray(); for (int i = 0; i < nameChar.length; i++) { String nameCharStr = java.lang.Character.toString(nameChar[i]); if (nameCharStr.matches("[\\u4E00-\\u9FA5]+")) { String pinyinStr = getCharacterPinYin(nameChar[i]); if (pinyinStr != null) { sb.append(pinyinStr); } } else if (nameCharStr.matches("^[a-zA-Z]*")) { sb.append(nameCharStr.toLowerCase()); } else if (nameCharStr.matches("[0-9]*")) { sb.append(nameCharStr); } } return sb.toString(); } public static String getCharacterPinYin(char c) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); String[] pinyin = null; try { pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } // 如果c不是汉字,toHanyuPinyinStringArray会返回null if (pinyin == null) return null; // 只取一个发音,如果是多音字,仅取第一个发音 return pinyin[0]; } /** * 汉字转换位汉语拼音首字母,英文字符不变,其他符号忽略, * * @param chines *汉字 * @return 小写简拼 */ public static String getShortPinyin(String chines) { StringBuilder sb = new StringBuilder(); char[] nameChar = chines.toCharArray(); for (int i = 0; i < nameChar.length; i++) { String nameCharStr = java.lang.Character.toString(nameChar[i]); if (nameCharStr.matches("[\\u4E00-\\u9FA5]+")) { String pinyinStr = getCharacterShortPinYin(nameChar[i]); if (pinyinStr != null) { sb.append(pinyinStr); } } else if (nameCharStr.matches("^[a-zA-Z]*")) { sb.append(nameCharStr.toLowerCase()); } else if (nameCharStr.matches("[0-9]*")) { sb.append(nameCharStr); } } return sb.toString(); } public static String getCharacterShortPinYin(char c) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); String[] pinyin = null; try { pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } if (pinyin == null) return null; // 只取一个发音,如果是多音字,仅取第一个发音的首字母 return java.lang.Character.toString(pinyin[0].charAt(0)); }
如果觉得《android 将文字转换为拼音格式 android中将汉字转为拼音》对你有帮助,请点赞、收藏,并留下你的观点哦!