浏览代码

汉字转拼音静态方法大小写分开

gaodm 4 年之前
父节点
当前提交
e37a708c27
共有 1 个文件被更改,包括 23 次插入2 次删除
  1. 23 2
      common/src/main/java/com/diagbot/util/Cn2SpellUtil.java

+ 23 - 2
common/src/main/java/com/diagbot/util/Cn2SpellUtil.java

@@ -39,17 +39,37 @@ public class Cn2SpellUtil {
         return pinyinName;
     }
 
+    /**
+     * 汉字转换位汉语拼音,英文字符不变(大写)
+     *
+     * @param chines 汉字
+     * @return 拼音(大写)
+     */
+    public static String converterToSpell(String chines) {
+        return converterToSpellByCase(chines, HanyuPinyinCaseType.UPPERCASE);
+    }
+
+    /**
+     * 汉字转换位汉语拼音,英文字符不变(小写)
+     *
+     * @param chines 汉字
+     * @return 拼音(小写)
+     */
+    public static String converterToSpellLow(String chines) {
+        return converterToSpellByCase(chines, HanyuPinyinCaseType.LOWERCASE);
+    }
+
     /**
      * 汉字转换位汉语拼音,英文字符不变
      *
      * @param chines 汉字
      * @return 拼音
      */
-    public static String converterToSpell(String chines) {
+    private static String converterToSpellByCase(String chines, HanyuPinyinCaseType caseType) {
         String pinyinName = "";
         char[] nameChar = chines.toCharArray();
         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
-        defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
+        defaultFormat.setCaseType(caseType);
         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
         for (int i = 0; i < nameChar.length; i++) {
             if (nameChar[i] > 128) {
@@ -68,5 +88,6 @@ public class Cn2SpellUtil {
     public static void main(String[] args) {
         System.out.println(converterToFirstSpell("欢迎来到Java世界"));
         System.out.println(converterToSpell("欢迎来到Java世界"));
+        System.out.println(converterToSpellLow("欢迎来到Java世界"));
     }
 }