汉语生成拼音的工具类

个人主页

package com.pfxt.util;import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;public class PingyinTest {public static String convertHanzi2Pinyin(String hanzi, boolean full) {/**** ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言 ^[\u4E00-\u9FFF]+$ 匹配简体和繁体* ^[\u4E00-\u9FA5]+$ 匹配简体*/String regExp = "^[\u4E00-\u9FFF]+$";StringBuffer sb = new StringBuffer();if (hanzi == null || "".equals(hanzi.trim())) {return "";}String pinyin = "";for (int i = 0; i < hanzi.length(); i++) {char unit = hanzi.charAt(i);if (match(String.valueOf(unit), regExp))// 是汉字,则转拼音{pinyin = convertSingleHanzi2Pinyin(unit);if (full) {sb.append(pinyin);} else {sb.append(pinyin.charAt(0));}} else {sb.append(unit);}}return sb.toString();}/**** 将单个汉字转成拼音** @param hanzi* @return*/private static String convertSingleHanzi2Pinyin(char hanzi) {HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);String[] res;StringBuffer sb = new StringBuffer();try {res = PinyinHelper.toHanyuPinyinStringArray(hanzi, outputFormat);sb.append(res[0]);// 对于多音字,只用第一个拼音} catch (Exception e) {e.printStackTrace();return "";}return sb.toString();}/**** @param str* 源字符串* @param regex* 正则表达式* @return 是否匹配*/public static boolean match(String str, String regex) {Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(str);return matcher.find();}public static String getPinYinHeadChar(String str) {String convert = "";for (int j = 0; j < str.length(); j++) {char word = str.charAt(j);if(word=='('||word==')'||word=='('||word==')'){continue;}String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);if (pinyinArray != null) {convert += pinyinArray[0].charAt(0);} else {convert += word;}}return convert.toLowerCase();}public static void main(String[] args) {System.out.println(getPinYinHeadChar("所示学生"));}
}

maven依赖:

<dependency><groupId>com.belerwebgroupId><artifactId>pinyin4jartifactId><version>2.5.0version>dependency>


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部