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 Pinyin


{

         public static void main(String[] args)

         {       

                   Hanyu hanyu = new Hanyu();

                   String str = "我们";

                   String strPinyin = hanyu.getStringPinYin(str);

                   System.out.println(strPinyin);

         }


}


 


class Hanyu

{

private HanyuPinyinOutputFormat format = null;

        private String[] pinyin;

        public Hanyu()

         {

                   format = new HanyuPinyinOutputFormat();                  

                   //WITH_TONE_NUMBER是输出拼音的音调 

                  //WITHOUT_TONE 是没有输出音调


                   format.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);

                  // format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);                

                   pinyin = null;

         }

         //转换单个字符

         public String getCharacterPinYin(char c)

         {

               try

                {

                            pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);

             }

                  catch(BadHanyuPinyinOutputFormatCombination e)


                   {


                            e.printStackTrace();


                   }

                   // 如果c不是汉字,toHanyuPinyinStringArray会返回null


                   if(pinyin == null) return null;

                   // 只取一个发音,如果是多音字,仅取第一个发音

                   return pinyin[0];   

         }

      //转换一个字符串

         public String getStringPinYin(String str)


         {

                   StringBuilder sb = new StringBuilder();

                   String tempPinyin = null;

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


                   {

                            tempPinyin =getCharacterPinYin(str.charAt(i));

                            if(tempPinyin == null)


                            {

                                     // 如果str.charAt(i)非汉字,则保持原样

                                     sb.append(str.charAt(i));

                            }

                            else

                            {

                                     sb.append(tempPinyin);

                            }

                   }


                   return sb.toString();

         }


}