项目中有一个页面需要对车辆品牌进行排序,但是遇到个别机型出现排序错乱的问题
public static char getFirstLetter(String name) {
String letter = "#";
if (!TextUtils.isEmpty(name.trim())) {
String first = name.trim().substring(0, 1).toUpperCase(Locale.CHINESE);
if (first.matches("[A-Z]"))
letter = first;
else {
ArrayList<HanziToPinyin.Token> tokens = HanziToPinyin.getInstance().get(first);
if (tokens != null && tokens.size() > 0) {
String firstPinyin = tokens.get(0).target.substring(0, 1).toUpperCase(Locale.CHINESE);
if (firstPinyin.matches("[A-Z]")) {
letter = firstPinyin;
}
}
}
}
return letter.charAt(0);
}
判断得知是由上个方法导致问题的出现,但是我用别的方法替换之后,发现并没有什么效果。
{
"alphabetId": 2,
"alphabetName": "B",
"id": 25,
"logoImg": "//car0.autoimg.cn/logo/brand/100/129302239751932500.jpg",
"name": "标致"
},
这时我发现接口返回的数据里面是有首字母字段的,不需要手机端通过文字获取首字母,这样就避开了这个方法,由服务端转换好给到手机端,按照这个思路之后,果然之前的问题就没有再出现了。