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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构