java汉字取拼音

来源:互联网 发布:大数据英文翻译 编辑:程序博客网 时间:2024/05/01 18:17
package info.util;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.HanyuPinyinVCharType;import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;import org.apache.log4j.Logger;public class PyHelper {private static Logger logger = Logger.getLogger(PyHelper.class);private static HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();static {format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 没有音调数字format.setVCharType(HanyuPinyinVCharType.WITH_V);// v显示}public static String getFirstLeter(String str, StringBuilder sb) {if (str == null) {return "";}if (sb == null) {sb = new StringBuilder();}char[] chars = str.toCharArray();if (chars != null && chars.length > 0) {for (int i = 0; i < chars.length; i++) {try {String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i], format);if (pinYin != null && pinYin.length > 0) {sb.append(pinYin[0].charAt(0));}} catch (BadHanyuPinyinOutputFormatCombination e) {logger.error("Error ocurred:", e);}}}return sb.toString();}public static String getAllLeter(String str, StringBuilder sb) {if (str == null) {return "";}if (sb == null) {sb = new StringBuilder();}char[] chars = str.toCharArray();if (chars != null && chars.length > 0) {for (int i = 0; i < chars.length; i++) {try {String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i], format);if (pinYin != null && pinYin.length > 0) {sb.append(pinYin[0]);}} catch (BadHanyuPinyinOutputFormatCombination e) {logger.error("Error ocurred:", e);}}}return sb.toString();}}