0
点赞
收藏
分享

微信扫一扫

java 之 中文转拼音库 pinyin4j 转


Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。 
拼音输出格式可以定制。 
pinyin4j 调用入口为net.sourceforge.pinyin4j.PinyinHelper 

示例代码:



1. import
2. import
3. import
4. import
5. import
6.   
7. /**
8.  * 汉语拼音 帮助类
9.  * 
10.  * @author lili
11.  * 
12.  */
13. public class
14. /**
15.      * 获取汉字串拼音
16.      * @param strCN
17.      * @return 汉字串拼音
18.      * @throws BadHanyuPinyinOutputFormatCombination
19.      */
20. public static
21. throws
22. if(null
23. return null;  
24.         }  
25. new
26. char[] charOfCN = strCN.toCharArray();  
27. new
28.         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
29.         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
30. for (int i = 0; i < charOfCN.length; i++) {  
31. // 是否为中文字符
32. if (charOfCN[i] > 128) {  
33.                 String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(  
34.                         charOfCN[i], defaultFormat);  
35. if (null
36. 0]);  
37. else{  
38.                     spell.append(charOfCN[i]);  
39.                 }  
40. else
41.                 spell.append(charOfCN[i]);  
42.             }  
43.         }  
44. return
45.     }  
46. /**
47.      * 获取汉字串 拼音首字母
48.      * @param strCN
49.      * @return  拼音首字母
50.      * @throws BadHanyuPinyinOutputFormatCombination
51.      */
52. public static
53. throws
54. if(null
55. return null;  
56.         }  
57. new
58. char[] charOfCN = strCN.toCharArray();  
59. new
60.         format.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
61.         format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
62. for (int i = 0; i < charOfCN.length; i++) {  
63. // 是否为中文字符
64. if (charOfCN[i] > 128) {  
65.                 String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(  
66.                         charOfCN[i], format);  
67. // 取拼音首字母
68. if (null
69. 0].charAt(0));  
70. else{  
71.                     firstSpell.append(charOfCN[i]);  
72.                 }  
73. else
74.                 firstSpell.append(charOfCN[i]);  
75.             }  
76.         }  
77. return
78.     }  
79. /**
80.      * 获取 汉字串拼音首字母 & 汉字串拼音
81.      * 
82.      * @param strCN
83.      * @return 下标0:汉字串拼音首字母;下标1:汉字串拼音
84.      * @throws BadHanyuPinyinOutputFormatCombination
85.      */
86. public static
87. throws
88. if(null
89. return null;  
90.         }  
91. new
92. new
93. char[] charOfCN = strCN.toCharArray();  
94. new
95.         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
96.         defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  
97. for (int i = 0; i < charOfCN.length; i++) {  
98. // 是否为中文字符
99. if (charOfCN[i] > 128) {  
100.                 String[] spellArray = PinyinHelper.toHanyuPinyinStringArray(  
101.                         charOfCN[i], defaultFormat);  
102. if (null
103. 0].charAt(0));  
104. 0]);  
105. else{  
106.                     firstSpell.append(charOfCN[i]);  
107.                     spell.append(charOfCN[i]);  
108.                 }  
109. else
110.                 firstSpell.append(charOfCN[i]);  
111.                 spell.append(charOfCN[i]);  
112.             }  
113.         }  
114. return new
115.     }  
116.       
117. }



2.测试 

1. import
2. import
3.   
4. import
5.   
6. public class
7. /**
8.      * @param args
9.      */
10. public static void
11. try
12.             testPinyin();  
13. catch
14.             e1.printStackTrace();  
15.         }  
16.     }  
17. static void testPinyin() throws
18. null;  
19. null;  
20. "< 中國-China-중국 >";  
21.           
22.         pinyin = PinyinUtils.getFirstHanyuPinyin( s);  
23. "getFirstHanyuPinyin("+s+")......["+pinyin+"]");  
24.           
25.         pinyin = PinyinUtils.getHanyuPinyin( s);  
26. "getHanyuPinyin("+s+")......["+pinyin+"]");  
27.           
28.         firstAndPinyin = PinyinUtils.getFirstAndHanyuPinyin( s);  
29. "getFirstAndHanyuPinyin("+s+")......"+Arrays.asList(firstAndPinyin));  
30.     }  
31.       
32. }



举报

相关推荐

0 条评论