1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| public static String getFullSpell(String chinese) { // 用StringBuffer(字符串缓冲)来接收处理的数据 StringBuffer sb = new StringBuffer(); //字符串转换字节数组 char[] arr = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); //转换类型(大写or小写) defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); //定义中文声调的输出格式 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //定义字符的输出格式 defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON); for (int i = 0; i < arr.length; i++) { //判断是否是汉子字符 if (arr[i] > 128) { try { sb.append(capitalize(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0])); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { // 如果不是汉字字符,直接拼接 sb.append(arr[i]); } } return sb.toString(); }
/** * 首字母大写 * @param str * @return */ public static String capitalize(String str) { char ch[]; ch = str.toCharArray(); if (ch[0] >= 'a' && ch[0] <= 'z') { ch[0] = (char) (ch[0] - 32); } String newString = new String(ch); return newString; }
|