实现java z转拼音

最近做的项目,因为下拉框中的项目太多,需要有个过滤的方法。我想的是键入汉语拼音首字母即时过滤下拉内容。

在网上找了好一会,发现了有个专门用来将中文转换成汉语拼音的Java的开源库,Pinyin4j,


基本用法,如下示例

Java代码 
1./** 
2. * 汉字转换位汉语拼音,英文字符不变 
3. * @author xuke 
4. * 
5. */ 
6.public class Cn2Spell {  
7.   
8.    /** 
9.    * 汉字转换位汉语拼音首字母,英文字符不变 
10.    * @param chines 汉字 
11.    * @return 拼音 
12.    */ 
13.    public static String converterToFirstSpell(String chines){         
14.        String pinyinName = "";  
15.        char[] nameChar = chines.toCharArray();  
16.        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();  
17.        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
18.        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
19.        for (int i = 0; i < nameChar.length; i++) {  
20.            if (nameChar[i] > 128) {  
21.                try {  
22.                    pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0);  
23.                } catch (BadHanyuPinyinOutputFormatCombination e) {  
24.                    e.printStackTrace();  
25.                }  
26.            }else{  
27.                pinyinName += nameChar[i];  
28.            }  
29.        }  
30.        return pinyinName;  
31.    }  
32.   
33.    /** 
34.    * 汉字转换位汉语拼音,英文字符不变 
35.    * @param chines 汉字 
36.    * @return 拼音 
37.    */ 
38.    public static String converterToSpell(String chines){          
39.        String pinyinName = "";  
40.        char[] nameChar = chines.toCharArray();  
41.        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();  
42.        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
43.        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
44.        for (int i = 0; i < nameChar.length; i++) {  
45.            if (nameChar[i] > 128) {  
46.                try {  
47.                    pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0];  
48.                } catch (BadHanyuPinyinOutputFormatCombination e) {  
49.                    e.printStackTrace();  
50.                }  
51.            }else{  
52.                pinyinName += nameChar[i];  
53.            }  
54.        }  
55.        return pinyinName;  
56.    }  
57.      
58.    public static void main(String[] args) {  
59.        System.out.println(converterToFirstSpell("欢迎来到最棒的Java中文社区"));  
60.    }  
61.} 

你可能感兴趣的:(java)