在 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));
}
我正在使用以下 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));
}