字符串轉拼音,支持全品,首字母縮寫。
package com.test;
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 PinyinUtils {
static HanyuPinyinOutputFormat getPinyinFmt() {
HanyuPinyinOutputFormat fmt = new HanyuPinyinOutputFormat();
fmt.setCaseType(HanyuPinyinCaseType.LOWERCASE);
fmt.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
fmt.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
return fmt;
}
public static char getPinyinFirstLetter(char ch)
throws BadHanyuPinyinOutputFormatCombination {
String[] array = null;
array = PinyinHelper.toHanyuPinyinStringArray(ch, getPinyinFmt());
if (array != null && array.length > 0 && array[0].length() > 0) {
// 取漢字拼音首字母
return Character.toUpperCase(array[0].charAt(0));
} else
return Character.toUpperCase(ch);
}
public static String getJianpin(String str)
throws BadHanyuPinyinOutputFormatCombination {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
buf.append(getPinyinFirstLetter(str.charAt(i)));
}
return buf.toString();
}
public static String getFullPinyin(String str)
throws BadHanyuPinyinOutputFormatCombination {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
String[] array = null;
array = PinyinHelper.toHanyuPinyinStringArray(str.charAt(i),
getPinyinFmt());
if (array != null && array.length > 0) {
buf.append(array[0]);
} else {
buf.append(str.charAt(i));
}
// buf.append(' ');
}
return buf.toString();
}
}