From 0b5693a40462e09fe678cdc41a0aaee0bf49c532 Mon Sep 17 00:00:00 2001 From: shenym3 Date: Fri, 17 Jan 2025 16:44:43 +0800 Subject: [PATCH] =?UTF-8?q?[fix]:[][=E7=94=A8=E6=88=B7=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9E=84=E5=BB=BA=E6=88=90=E6=A0=91]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/util/vir/NameConvert2code.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/com/jeesite/modules/util/vir/NameConvert2code.java diff --git a/src/main/java/com/jeesite/modules/util/vir/NameConvert2code.java b/src/main/java/com/jeesite/modules/util/vir/NameConvert2code.java new file mode 100644 index 0000000..f185355 --- /dev/null +++ b/src/main/java/com/jeesite/modules/util/vir/NameConvert2code.java @@ -0,0 +1,45 @@ +package com.vir.ai.admin.utils; + +import cn.hutool.core.util.CharUtil; +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; + +public class NameConvert2code { + /** + * 如果传入参数中有汉字把汉字变为拼音,截取拼音首字母,多个汉字首字母拼接字符串,如果包含英文或者其他字符则不变输出 + * + * @param param param + * @return String + */ + public static String charactersChanged2PinyinAndTakeFirstLetter(String param) { + HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); + format.setCaseType(HanyuPinyinCaseType.LOWERCASE); + format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); + format.setVCharType(HanyuPinyinVCharType.WITH_V); + char[] input = param.trim().toCharArray(); + StringBuilder output = new StringBuilder(); + try { + for (char c : input) { + //忽略空格 + if (CharUtil.equals(c, ' ', true)) { + continue; + } + //判断字符是否是中文 + if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) { + String[] temp = PinyinHelper.toHanyuPinyinStringArray(c, format); + output.append(temp[0].charAt(0)); + } else { + output.append(c); + } + } + } catch (BadHanyuPinyinOutputFormatCombination e) { + throw new RuntimeException("param=" + param + "中文名称转换出现异常", e); + } + return output.toString(); + } + +} -- Gitee