1. 程式人生 > >java獲取中文全拼/首字母工具以及大小寫轉換

java獲取中文全拼/首字母工具以及大小寫轉換

pom:

<!--漢轉拼音 -->         <dependency>             <groupId>com.belerweb</groupId>             <artifactId>pinyin4j</artifactId>             <version>2.5.0</version>         </dependency>

程式碼:

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

        String convert = "";         for (int j = 0; j < str.length(); j++) {             char word = str.charAt(j);             String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);             if (pinyinArray != null) {                 convert += pinyinArray[0].charAt(0);             } else {                 convert += word;             }         }         return convert;     }     /**      * 得到 全拼      *       * @param src      * @return      */     public static String getPingYin(String src) {         char[] t1 = null;         t1 = src.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++) {                 // 判斷是否為漢字字元                 if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {                     t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);                     t4 += t2[0];                 } else {                     t4 += java.lang.Character.toString(t1[i]);                 }             }             return t4;         } catch (BadHanyuPinyinOutputFormatCombination e1) {             e1.printStackTrace();         }         return t4;     }     /**      * 將字串轉移為ASCII碼      *       * @param cnStr      * @return      */     public static String getCnASCII(String cnStr) {         StringBuffer strBuf = new StringBuffer();         byte[] bGBK = cnStr.getBytes();         for (int i = 0; i < bGBK.length; i++) {             // System.out.println(Integer.toHexString(bGBK[i]&0xff));             strBuf.append(Integer.toHexString(bGBK[i] & 0xff));         }         return strBuf.toString();     }     public static void main(String[] args) {         String str="騷客居(saokeju.com)";         //得到拼音         String pingyin=getPingYin(str);         //過濾掉非字母字元並將拼音轉換為大寫         System.out.println(pingyin.replaceAll("[^a-z^A-Z^]", "").toUpperCase());//SAOKEJUSAOKEJUCOM         //得到首字母         String pyhead=getPinYinHeadChar(str);         System.out.println(pyhead);//skj(saokeju.com)                       }