获取首字母,如果无或者没有识别返回#字符
/**
* 获取首字母
* @param str
* @return
*/
public static String first(String str) {
if (str == null || str.equals("")) return "#";
char ch = str.charAt(0);
if (ch >= 'a' && ch <= 'z') return (char) (ch - 'a' + 'A') + "";
if (ch >= 'A' && ch <= 'Z') return ch + "";
try {
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 设置大小写格式
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
// 设置声调格式
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
if (Character.toString(ch).matches("[\\u4E00-\\u9FA5]+")) {
String[] array = PinyinHelper.toHanyuPinyinStringArray(ch, defaultFormat);
if (array != null) {
return array[0].charAt(0) + "";
}
}
} catch (Exception e) {
e.printStackTrace();
}
return "#";
}