华为部分机型对集合排序时会出现错乱的问题

项目中有一个页面需要对车辆品牌进行排序,但是遇到个别机型出现排序错乱的问题

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": "标致"
          },

这时我发现接口返回的数据里面是有首字母字段的,不需要手机端通过文字获取首字母,这样就避开了这个方法,由服务端转换好给到手机端,按照这个思路之后,果然之前的问题就没有再出现了。

 

猜你喜欢

转载自blog.csdn.net/wangwenbo1019/article/details/81480364