فهرست منبع

添加字符串转换拼音工具类

gao.qiang 2 سال پیش
والد
کامیت
635f608c91
2فایلهای تغییر یافته به همراه60 افزوده شده و 1 حذف شده
  1. 10 1
      base-common/pom.xml
  2. 50 0
      base-common/src/main/java/com/ozs/common/utils/ChineseToPingyin.java

+ 10 - 1
base-common/pom.xml

@@ -169,7 +169,16 @@
             <version>8.0.3</version>
         </dependency>
 
-
+        <dependency>
+            <groupId>net.dreamlu</groupId>
+            <artifactId>mica-core</artifactId>
+            <version>2.7.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.0</version>
+        </dependency>
         <!-- mybatis-plus -->
         <dependency>
             <groupId>com.baomidou</groupId>

+ 50 - 0
base-common/src/main/java/com/ozs/common/utils/ChineseToPingyin.java

@@ -0,0 +1,50 @@
+package com.ozs.common.utils;
+
+import net.dreamlu.mica.core.utils.StringUtil;
+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 ChineseToPingyin {
+    /**
+     * 中文转拼音
+     *
+     * @param ChineseLanguage
+     * @return
+     */
+    public static String convertHanziToPinyin(String ChineseLanguage) {
+        char[] cl_chars = ChineseLanguage.trim().toCharArray();
+        String hanyupinyin = "";
+        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写
+        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
+        defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
+        try {
+            for (int i = 0; i < cl_chars.length; i++) {
+                if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音
+                    hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0];
+                } else {// 如果字符不是中文,则不转换
+                    hanyupinyin += cl_chars[i];
+                }
+            }
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            System.out.println("字符不能转成汉语拼音");
+        } catch (Exception e) {
+            e.printStackTrace();
+            // System.out.println("字符不能转成汉语拼音");
+        }
+        if (StringUtil.isBlank(hanyupinyin)) {
+            hanyupinyin = "weizhi";
+        }
+        return hanyupinyin;
+    }
+
+    public static void main(String[] args) {
+        String name="高强";
+        String s = convertHanziToPinyin(name);
+        System.out.println(s);
+    }
+}