java在处理项目需求时,有时需要排序,尤其是中文名字按0-9,A-Z进行首字母排序,这时候就需要首先要得到中文字符串的首字母,然后按照字母顺序进行排序,不多说,直接上代码,看java如何获取中文字符串首字母:
/**
* 获取汉字串拼音首字母,英文字符不变
* @param chinese 汉字串
* @return 汉语拼音首字母
*/
public static String getFirstSpell(String chinese) {
StringBuffer pybf = new StringBuffer();
char[] arr = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
if(arr.length>0){
if (arr[0] > 128) {
try {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[0], defaultFormat);
if (temp != null) {
pybf.append(temp[0].charAt(0));
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr[0]);
}
}
return pybf.toString().replaceAll("\\W", "").trim().toUpperCase();
}
public static void main(String[] args) {
String str = "dW8blj104118";
String as = getFirstSpell("|||");
System.out.println(as);
}
此时已经通过java得到了首字母,剩下的就是去排序了。