RT:Java把汉字转拼音求实现代码

解决方案 »

  1.   


    /**   
     * 汉字转换位汉语拼音,英文字符不变  
     *  @author Japie
     *  
      */   
    public   class  Cn2Spell {   
        
         /**   
        * 汉字转换位汉语拼音首字母,英文字符不变  
        *  @param  chines 汉字  
        *  @return  拼音  
         */   
         public   static  String converterToFirstSpell(String chines){          
            String pinyinName  =   "" ;   
             char [] nameChar  =  chines.toCharArray();   
            HanyuPinyinOutputFormat defaultFormat  =   new  HanyuPinyinOutputFormat();   
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);   
             for  ( int  i  =   0 ; i  <  nameChar.length; i ++ ) {   
                 if  (nameChar[i]  >   128 ) {   
                     try  {   
                        pinyinName  +=  PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[ 0 ].charAt( 0 );   
                    }  catch  (BadHanyuPinyinOutputFormatCombination e) {   
                        e.printStackTrace();   
                    }   
                } else {   
                    pinyinName  +=  nameChar[i];   
                }   
            }   
             return  pinyinName;   
        }   
        
         /**   
        * 汉字转换位汉语拼音,英文字符不变  
        *  @param  chines 汉字  
        *  @return  拼音  
         */   
         public   static  String converterToSpell(String chines){           
            String pinyinName  =   "" ;   
             char [] nameChar  =  chines.toCharArray();   
            HanyuPinyinOutputFormat defaultFormat  =   new  HanyuPinyinOutputFormat();   
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);   
             for  ( int  i  =   0 ; i  <  nameChar.length; i ++ ) {   
                 if  (nameChar[i]  >   128 ) {   
                     try  {   
                        pinyinName  +=  PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[ 0 ];   
                    }  catch  (BadHanyuPinyinOutputFormatCombination e) {   
                        e.printStackTrace();   
                    }   
                } else {   
                    pinyinName  +=  nameChar[i];   
                }   
            }   
             return  pinyinName;   
        }   
           
         public   static   void  main(String[] args) {   
            System.out.println(converterToFirstSpell( " 欢迎来到最棒的Java中文社区 " ));   
        }   
    }  
      

  2.   

    有个开源项目叫pinyin4j
    http://pinyin4j.sourceforge.net/