• java 根据汉字生成拼音全拼或拼音首字母


    1.情景展示

      java 根据中文生成对应的拼音 

    2.准备工作

      所需jar包:pinyin4j-2.5.0.jar   

    3.解决方案

      导包

    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;
    

      代码实现

    /**
     * 根据汉字生成拼音全拼或拼音首字母
     * @explain
     * @author Marydon
     * @creationTime 2020年5月14日下午4:26:30
     * @version 1.0
     * @since
     * @email marydon20170307@163.com
     */
    public class GetPinyin {
        /**
         * 得到全拼
         * @param str
         * @return 全拼(小写)
         */
        public static String getPinYin(String str){
            char t1[]=null;
            t1=str.toCharArray();
            String[] t2=new String[t1.length];
            HanyuPinyinOutputFormat t3=new HanyuPinyinOutputFormat();
            t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            t3.setVCharType(HanyuPinyinVCharType.WITH_V);
            String t4="";
            int t0=t1.length;
            try {
                for ( int i = 0; i < t0; i++ ) {
                	//是用来判断是不是中文的一个条件,采用的是unicode编码
                    if(Character.toString(t1[i]).matches("[\u4E00-\u9FA5]+")){
                        t2= PinyinHelper.toHanyuPinyinStringArray(t1[i],t3);
                        t4+=t2[0];
                    }else {
                        t4+=Character.toString(t1[i]);
                    }
                }
                return t4;
            } catch ( BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination ) {
                badHanyuPinyinOutputFormatCombination.printStackTrace();
            }
            return t4;
        }
    
        /**
         * 得到汉字首字母的拼音
         * @param str
         * @return 拼音首字母(大写)
         */
        public static String getPinYinHeaderChar(String str){
            String convert="";
            for ( int i = 0; i < str.length(); i++ ) {
                char word=str.charAt(i);
                String[] pinYinArray=PinyinHelper.toHanyuPinyinStringArray(word);
                if ( pinYinArray!=null ){
                    convert+=pinYinArray[0].charAt(0);
                }else {
                    convert+=word;
                }
            }
            return convert.toUpperCase();
        }
    
      //测试
        public static void main(String[] args) {
            System.out.println(getPinYin("火影忍者Marydon"));
            System.out.println(getPinYinHeaderChar("海贼王"));
        }
    }
    

    4.效果展示  

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    小结:机器学习基础部分
    概率图:HMM:Evaluation问题(前向算法/后向算法)
    概率图:GMM求解:EM优化算法的导出(从【ELBO+KL】和【ELBO+Jensen】两个角度导出)
    概率图:GMM:EM算法及其收敛性证明
    概率图:高斯混合模型(GMM)
    概率图基础:D-separation;全局Markov性质;Markov Blanket
    概率图基础:概率基本概念、条件独立性、图求解联合概率的规则合理性推理
    mysql索引失效
    mysql 统计行数count(*)
    mysql如何收缩表空间
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/12889693.html
Copyright © 2020-2023  润新知