wangbyn 发表于 2022-11-16 17:53

Java工具类——汉字转拼音

本帖最后由 wangbyn 于 2022-11-16 17:56 编辑

写了一个根据汉字获取拼音字符串的工具类,需要用到pinyin4j-2.5.0.jar包。
废话不多说上代码。

package com.xxx.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;

/**
* 根据汉字获取拼音处理
* @AuThor wangbyn
*/
public class GetPinyin {

      /**
         * 得到 全拼
         * @Param src
         * @return
         */
      public static String getPingYin(String src) {
                char[] t1 = null;
                t1 = src.toCharArray();
                String[] t2 = new String;
                HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
                t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
                t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
                t3.setVCharType(HanyuPinyinVCharType.WITH_V);
                StringBuffer t4 = new StringBuffer();
                int t0 = t1.length;
                try {
                        for (char c : t1) {
                              // 判断是否为汉字字符
                              if (Character.toString(c).matches(
                                                "[\\u4E00-\\u9FA5]+")) {
                                        t2 = PinyinHelper.toHanyuPinyinStringArray(c, t3);
                                        t4.append(t2);
                              } else {
                                        t4.append(Character.toString(c));
                              }
                        }
                        return t4.toString();
                } catch (BadHanyuPinyinOutputFormatCombination e1) {
                        e1.printStackTrace();
                }
                return t4.toString();
      }

      /**
         * 得到中文首字母
         * @param str
         * @return
         */
      public static String getPinYinHeadChar(String str) {

                StringBuffer convert = new StringBuffer();
                for (int j = 0; j < str.length(); j++) {
                        char word = str.charAt(j);
                        String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
                        if (pinyinArray != null) {
                              convert.append(pinyinArray.charAt(0));
                        } else {
                              convert.append(word);
                        }
                }
                return convert.toString();
      }


      public static void main(String[] args) {

                String cnStr = "俺没有文化";
                System.out.println(getPingYin(cnStr));
                System.out.println(getPinYinHeadChar(cnStr));
      }

}



sopcast 发表于 2022-11-16 20:02

感谢分享不错!谢谢

matrixsky 发表于 2022-11-16 20:27

多音字咋办,,,重庆 重量

renzhanxin 发表于 2022-11-16 21:00

感谢分享不错!谢谢。学习。

guiyuandaren 发表于 2022-11-16 21:07

请问一下像饥饿 转成拼音会不会有误解

iYoutudou 发表于 2022-11-16 21:09

感谢分享不错!谢谢楼至

愷龍 发表于 2022-11-16 21:20

感谢楼主的分享!

yippee 发表于 2022-11-16 22:00

谢谢楼主分享

mokson 发表于 2022-11-17 08:06

justyvan 发表于 2022-11-17 23:54


学习了,谢谢分享!
页: [1] 2
查看完整版本: Java工具类——汉字转拼音