• pinyin4j


    pinyin4j - 获取汉子的首字母

    package asd.we.utils;
    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;
     
    //工具包下载地址 http://download.csdn.net/detail/wd4871/9169865
    public class PingYinUtil {
     
        public static void main(String[] args) {
            String pinyin= getFirstSpell("阳阳");
            System.out.println(pinyin);
        }
        /**
         * 获取汉子拼音(全拼音)
         * @param inputString
         * @return
         */
        public static String getPingYin(String inputString) {
            HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
            format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            format.setVCharType(HanyuPinyinVCharType.WITH_V);
     
            char[] input = inputString.trim().toCharArray();
            String output = "";
     
            try {
                for (int i = 0; i < input.length; i++) {
                    if (java.lang.Character.toString(input[i]).matches("[\u4E00-\u9FA5]+")) {
                        String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
                        output += temp[0];
                    } else
                        output += java.lang.Character.toString(input[i]);
                }
            } catch (BadHanyuPinyinOutputFormatCombination e) {
                e.printStackTrace();
            }
            return output;
        }
        
        /**获取汉字串拼音首字母(第一个字母的首字母),英文字符不变  
         *   
         * **/
         public static String getFirstSpell(String chinese) {   
             try {
                StringBuffer pybf = new StringBuffer();   
                 char[] arr = chinese.toCharArray();   
                 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();   
                 defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
                 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); 
                 if(arr.length >0){
                     String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[0], defaultFormat);   
                     if (temp != null) {   
                             pybf.append(temp[0].charAt(0));   
                     }  
                 }
                 return pybf.toString().replaceAll("\W", "").trim();
            } catch (Exception e) {
                e.printStackTrace();
            }  
            return null;
         }   
        /**  
         * 获取每个汉字音首字母,英文字符不变  
         * @param chinese 汉字串  
         * @return 汉语拼音首字母  
         */  
        public static String getEachFirstSpell(String chinese) {   
            StringBuffer pybf = new StringBuffer();   
            char[] arr = chinese.toCharArray();   
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();   
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);   
            for (int i = 0; i < arr.length; i++) {   
                     //if (arr[i] > 128) {   
              //匹配是否是汉字
              if (Character.toString(arr[i]).matches("[\u4E00-\u9FA5]+")) {
    try { String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat); if (temp != null) { pybf.append(temp[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { pybf.append(arr[i]); } } return pybf.toString().replaceAll("\W", "").trim(); } /** * 获取汉字串拼音,英文字符不变 * @param chinese 汉字串 * @return 汉语拼音 */ public static String getFullSpell(String chinese) { StringBuffer pybf = new StringBuffer(); char[] arr = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < arr.length; i++) { //if (arr[i] > 128) {
              //匹配是否是汉字
             
    if (Character.toString(arr[i]).matches("[\u4E00-\u9FA5]+")) {
    try {   
                                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);   
                            } catch (BadHanyuPinyinOutputFormatCombination e) {   
                                    e.printStackTrace();   
                            }   
                    } else {   
                            pybf.append(arr[i]);   
                    }   
            }   
            return pybf.toString();   
        }  
        
        
    }

  • 相关阅读:
    队列

    Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHED
    连续三月涨势明显,PostgreSQL 将崛起?
    Oracle物理DG自动切换——Dataguard Broker配置
    MSSQL索引视图(indexed view)之简述及使用
    连续三月涨势明显,PostgreSQL 将崛起?
    Scheduler & Task & Worker & Thread & Request & Session & Connection of SQL Server
    MSSQL内存架构及管理
    MSSQL数据库后台进程(线程)
  • 原文地址:https://www.cnblogs.com/lizm166/p/13293171.html
Copyright © 2020-2023  润新知