package info.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;
import org.apache.log4j.Logger;
public class PyHelper {
private static Logger logger = Logger.getLogger(PyHelper.class);
private static HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
static {
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 没有音调数字
format.setVCharType(HanyuPinyinVCharType.WITH_V);// v显示
}
public static String getFirstLeter(String str, StringBuilder sb) {
if (str == null) {
return "";
}
if (sb == null) {
sb = new StringBuilder();
}
char[] chars = str.toCharArray();
if (chars != null && chars.length > 0) {
for (int i = 0; i < chars.length; i++) {
try {
String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i], format);
if (pinYin != null && pinYin.length > 0) {
sb.append(pinYin[0].charAt(0));
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
logger.error("Error ocurred:", e);
}
}
}
return sb.toString();
}
public static String getAllLeter(String str, StringBuilder sb) {
if (str == null) {
return "";
}
if (sb == null) {
sb = new StringBuilder();
}
char[] chars = str.toCharArray();
if (chars != null && chars.length > 0) {
for (int i = 0; i < chars.length; i++) {
try {
String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i], format);
if (pinYin != null && pinYin.length > 0) {
sb.append(pinYin[0]);
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
logger.error("Error ocurred:", e);
}
}
}
return sb.toString();
}
}