【问题标题】:Sorting an ArrayAdapter - ignoring case对 ArrayAdapter 进行排序 - 忽略大小写
【发布时间】:2012-09-02 22:34:57
【问题描述】:

我正在使用以下代码按字母顺序对 ArrayAdapter 进行排序:

adapter.sort(new Comparator<String>() {
    public int compare(String object1, String object2) {
        return object2.compareTo(object1);
    };
});

麻烦的是,它将所有大写条目排列在小写条目之前。

如何强制它忽略大小写?

【问题讨论】:

    标签: android sorting android-arrayadapter case-insensitive


    【解决方案1】:

    您可以使用String.compareToIgnoreCase()

    return object2.compareToIgnoreCase(object1);
    

    或者String.toLowerCase()方法:

    return object2.toLowerCase().compareTo(object1.toLowerCase());
    

    【讨论】:

    • 如果字符串是本地化文本,String#compareToIgnoreCase(String) 会更安全。例如。在土耳其语中 "I".toLowerCase() = ı 而不是 i
    • 有意思,iI的大写字母也是?
    • i -> İ 所以jimJIM 不会相等(我认为)如果(设备)语言环境是土耳其语,即使使用String#compareToIgnoreCase()。如果您比较非本地化文本的字符串,您可以使用toLowerCase(Locale.US),因为这会强制使用i I
    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2017-05-30
    • 1970-01-01
    相关资源
    最近更新 更多