zoukankan      html  css  js  c++  java
  • 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.效果展示  

    写在最后

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

     相关推荐:

  • 相关阅读:
    git上刚下载的项目就显示有改动
    Windows Server 2012 R2安装Oracle 11g问题
    maven项目更换本地仓库
    dom4j创建和解析xml文档
    java倒计时三种简单实现方式
    JS倒计时两种种实现方式
    java加载properties文件的六中基本方式实现
    MYSQL 高级语法
    MYSQL 基础语法
    Sql 代码规范说明
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/12889693.html
Copyright © 2011-2022 走看看