ChineseToSpell 中文转化成拼音

 1 package util;
 2 
 3 import net.sourceforge.pinyin4j.PinyinHelper;
 4 import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
 5 import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
 6 import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
 7 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 8 
 9 /**
10  * <p>汉字转换为汉语拼音,英文字符不变。此类中的方法均为静态方法,可直接调用。如:ChineseToSpell.converterToSpell("中国")  <br/>
11  * 下面给出了一些如何使用ChineseToSpell的示例:
12  *  * <p><blockquote><pre>
13  *      汉字转换为汉语拼音,英文字符不变 
14  *      ChineseToSpell.converterToSpell("中国");返回zhongguo
15  *     
16  * </pre></blockquote>
17  * 
18  */
19 public class ChineseToSpell {    
20     
21     /**
22      * 汉字转换为汉语拼音,英文字符不变  
23      * 
24      * @param      chines 汉字  
25      * @return       汉字所对应的拼音  
26      * 
27      */
28     public static String converterToSpell(String chines){           
29         String pinyinName = "";   
30         char[] nameChar = chines.toCharArray();   
31         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();   
32         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);   
33         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);   
34         for (int i = 0; i < nameChar.length; i++) {  
35             //判断是否为汉字,如果nameChar[i] > 128为汉字
36             if (nameChar[i] > 128) {   
37                 try {   
38                     pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0];   
39                 } catch (BadHanyuPinyinOutputFormatCombination e) {   
40                     e.printStackTrace();   
41                 }   
42             }else{   
43                 pinyinName += nameChar[i];   
44             }   
45         }   
46         pinyinName = pinyinName.replaceAll("u:", "v");
47         return pinyinName;
48     }
49   
50 } 

 

posted @ 2015-04-30 10:32  专注、坚持  阅读(166)  评论(0编辑  收藏  举报