实现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.}