首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

把汉语变成zhongwen

2012-10-29 
把中文变成zhongwenimport net.sourceforge.pinyin4j.PinyinHelperimport net.sourceforge.pinyin4j.form

把中文变成zhongwen

import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;public class Test {//用于存放输出样式的private HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();public Test() {outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);//大小写的问题outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);//关于v的显示方式outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//关于音标的显示}public static void  main(String args[]) throws BadHanyuPinyinOutputFormatCombination {Test test = new Test();String result = test.convertToPinYin("中文aaaaabbb.....',;12.3");System.out.println(result);}public String convertToPinYin(String str) throws BadHanyuPinyinOutputFormatCombination {char[] chars = str.toCharArray();StringBuffer result = new StringBuffer();for (char c:chars) {if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {//表示匹配中文//下面的results是表示该中文字所有的拼音,如“中”有"中文”、"相中"两种读法,所以当只需要拼音而不需要知道读第几声时,只需取第一个,多音字需慎重String results[] = PinyinHelper.toHanyuPinyinStringArray(c, outputFormat);result.append(results[0]);//字母和数字直接显示} else if (Character.isLetter(c)|| Character.isDigit(c)){result.append(c);}}return result.toString();}}

热点排行