900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java代码实现汉字转汉语拼音

java代码实现汉字转汉语拼音

时间:2023-04-14 11:45:02

相关推荐

java代码实现汉字转汉语拼音

基于汉语拼音的工具类实现了汉字转汉语拼音的功能。

在同事的代码的基础了,增加了对不能转的汉字报 NullPointerException的修改,实现返回原汉字。

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.exception.BadHanyuPinyinOutputFormatCombination;/*** 将汉字转换为全拼(每个字之间有一个空格)** @param str* 字符串,k 为1转大写拼音,否则小写拼音* @return String*/public static String getPinYin(String str, int k) {HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();// 默认小写outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);if (k == 1)outputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 不显示拼音的声调outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);StringBuilder sb = new StringBuilder();try {for (char c : str.toCharArray()) {// 如果包含有中文标点除号,需要使用正则表达式if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {// if (c > 128) {try {sb.append(PinyinHelper.toHanyuPinyinStringArray(c,outputFormat)[0] + " ");} catch (NullPointerException e) {sb.append(Character.toString(c) + " ");}} else {sb.append(Character.toString(c));}}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return sb.toString();}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。