获得汉字拼音的首字母和全拼

来源:互联网 发布:胡为乎遑遑欲何之句式 编辑:程序博客网 时间:2024/04/20 20:01
 
/**
 * 获得汉字拼音的首字母和全拼
 * 通过使用开源pinyin4j.jar包(在http://pinyin4j.sourceforge.net中可以获得) 
 */
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.exception.BadHanyuPinyinOutputFormatCombination;public class Chinese {/** * @param args */public static void main(String[] args) {String chinese = "我们都是好孩子(逶迤)!";String firstLetter = getFirstLetterFromChinese(chinese);System.out.println(firstLetter);String pinyin = convertChineseToPinyin(chinese);System.out.println(pinyin);}/** * 获得汉字的声母 * @param chinese * @return */public static String getFirstLetterFromChinese(String chinese) {String firstLetter = "";char[] chars = chinese.toCharArray();HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();//利用pinyin4j的开源方法,格式化输出format.setCaseType(HanyuPinyinCaseType.UPPERCASE);//大写输出format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//无标注输出for(int i = 0; i < chars.length;i++){if(chars[i] > 128){try {firstLetter += PinyinHelper.toHanyuPinyinStringArray(chars[i],format)[0].charAt(0);} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}}else{firstLetter += chars[i];}}return firstLetter;}/** * 汉字转拼音 * @param chinese * @return */public static String convertChineseToPinyin(String chinese) {String pinyin = "";char[] chars = chinese.toCharArray();HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();//利用pinyin4j的开源方法,格式化输出format.setCaseType(HanyuPinyinCaseType.LOWERCASE);//小写输出format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//无标注输出for(int i = 0; i < chars.length;i++){if(chars[i] > 128){try {pinyin += PinyinHelper.toHanyuPinyinStringArray(chars[i],format)[0];} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}}else{pinyin += chars[i];}}return pinyin;}}

原创粉丝点击