java汉字转拼音
把输入的汉字转换成拼音出来,用在网址的搜索
工具/原料
MyEclipse开发工具或其他java开发工具都可以
用到架包pinyin4j-2.5.0.jar 下载链接:http://pan.baidu.com/s/1hs4v9Ww 密码:fupx
单个汉字转化的拼音
1、public class HpTe衡痕贤伎st { public static void main(String[] args) { //得到砥淦酾垡汉字转化的拼音 String[] pinyinArray =PinyinHelper.toHanyuPinyinStringArray('转');//一个汉字可能有多个拼音所有需要循环 for(int i = 0; i < pinyinArray.length; ++i) { System.out.println(pinyinArray[i]); }}
2、多个字符的输出工具类代艨位雅剖码代码:class Hanyu{ private HanyuPinyinOutputFormat format = null; private String[] pinyin; public Hanyu() { format = new HanyuPinyinOutputFormat(); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); pinyin = null; } //转换单个字符 public String getCharacterPinYin(char c) { try { pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format); } catch(BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } // 如果c不是汉字,toHanyuPinyinStringArray会返回null if(pinyin == null) return null; // 只取一个发音,如果是多音字,仅取第一个发音 return pinyin[0]; } // 转换一个字符串 public String getStringPinYin(String str) { StringBuilder sb = new StringBuilder(); String tempPinyin = null; for (int i = 0; i < str.length(); ++i) { tempPinyin = getCharacterPinYin(str.charAt(i)); if (tempPinyin == null) { // 如果str.charAt(i)非汉字,则保持原样 sb.append(str.charAt(i)); } else { sb.append(tempPinyin); } } return sb.toString(); }}
3、测试类代码:public class HpTest { public static void main(String[] args) { Hanyu hanyu = new Hanyu(); // 中英文混合的一段文字 String str = "荆,c溪,白,石,出,"; String strPinyin = hanyu.getStringPinYin(str); System.out.println(strPinyin); }}输出结果如下图: