在 Android 中修改 compareTo

Modify compareTo in Android

我正在使用以下 compareTo-Method(在本例中为两个字符串)

Collections.sort(stringList, new Comparator<String>() {
            public int compare(String a, String b) {
                return a.compareTo(b);
            }
        });

在我当前的 Android-项目中。 compareTo-Function 在字母前设置特殊字符,如 #'. 和数字。我能否以某种方式修改 compareTo,字母在数字之前,数字在特殊字符之前 尽可能简单? 还是需要自己写比较方法?

提前致谢!

你不能覆盖String的compareTo()方法,但是你绝对可以在Collections.sort()等相关地方为你自己的Comparator提供自定义的compare()方法。请记住,String compareTo() 会进行 lexicographic 比较。 More information 在 Java 字符串 class 文档中。

您是否只需要反转 compareTo() 输出?然后像下面这样简单的 compare() 方法就可以工作了(注意 Java 一元运算符):

        public int compare(String a, String b) {
            return (- a.compareTo(b));
        }