java實現漢字取拼音首字母--嘗試着貼些簡潔的對大家可能有用的代碼

首先很不好意思,由於工作實在太忙,週末也好多時間忙在工作上,所以這兩年博客更新地不勤。爲了避免被lead誤解成“在論壇上鬼混”,所以以後發貼儘量少寫文字,直截了當貼代碼。爲什麼這麼做,主要是在平常工作中可能會遇上一些問題,在解決後總想將一些代碼與大家分享(當然如果網上有許多類似代碼了就不貼了,我貼的要麼是網上有很多用下來不爽的或者甚至有拋異常的,所以才貼上自己的代碼。本博客的原則是如果不寫轉載,那100%原創. 好了,這是第一篇,以後就啥都不說,一切盡在註釋中。


import net.sourceforge.pinyin4j.*;

import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;

import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;

import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class Pinyin4jtest

{

   /**

    * 輸入漢字字符串,得到其每個字的拼音首字母

    * @param chinese 漢字與其它混雜的源字符串

    * @return 首字母(不是漢字的部分原樣返回)

    * @throws BadHanyuPinyinOutputFormatCombination

    */

   public static String getPinyIninitialsLetters(String chinese) throws BadHanyuPinyinOutputFormatCombination

   {

       String rtnStr="";

       char singlechar;

       HanyuPinyinOutputFormat format=new HanyuPinyinOutputFormat();

       format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //取得拼音的格式爲不帶聲調號

       for(int i=0;i<chinese.length();i++)

       {

           singlechar=chinese.charAt(i);

           String[] pinyin=PinyinHelper.toHanyuPinyinStringArray(singlechar,format);

           if(pinyin==null||pinyin.length==0)

           {

               rtnStr+=singlechar;

           }

           else{

               rtnStr+=pinyin[0].substring(0, 1);//多音字時只取第一個音,並取得其拼音手字母

           }

       }


       return rtnStr;

   }


   /**

    * 最簡單的測試主程序,也不去用Junit了,好讓大家省點jar包

    * @param args

    * @throws BadHanyuPinyinOutputFormatCombination

    */

   public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination

   {

       String pinyinini=getPinyIninitialsLetters("中國第1峯").toUpperCase();

       System.out.println(pinyinini);

   }


}



//以上例子用到的 jar包為pinyin4j-2.5.0.jar,你可以在sourceforge官方得到最新版本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章