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

获取字符串内的全部汉字的汉语拼音并大写每个字的首字母

2012-10-06 
获取字符串内的所有汉字的汉语拼音并大写每个字的首字母package com.utilimport net.sourceforge.pinyin4

获取字符串内的所有汉字的汉语拼音并大写每个字的首字母

package com.util;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 SpellKit {/** * 获取字符串内的所有汉字的汉语拼音并大写每个字的首字母 *  * @param chinese * @return */public static String spell(String chinese) {if (chinese == null) {return null;}System.out.println("中文="+chinese); HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不标声调format.setVCharType(HanyuPinyinVCharType.WITH_V);// u:的声母替换为vtry {StringBuilder sb = new StringBuilder();for (int i = 0; i < chinese.length(); i++) {String[] array = PinyinHelper.toHanyuPinyinStringArray(chinese.charAt(i), format);if (array == null || array.length == 0) {continue;}String s = array[0];// 不管多音字,只取第一个char c = s.charAt(0);// 大写第一个字母String pinyin = String.valueOf(c).toUpperCase().concat(s.substring(1));sb.append(pinyin);}String[] array = PinyinHelper.toHanyuPinyinStringArray(chinese.charAt(0), format);String s = array[0];// 不管多音字,只取第一个char c = s.charAt(0);// 第一个字母String pinyin = String.valueOf(c).toUpperCase();// 大写sb.append(pinyin);return sb.toString();} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return null;}/** * @param args */public static void main(String[] args) {System.out.println("拼音:"+SpellKit.spell("似水年华"));}}

热点排行