java - 修改Android中的compareTo

标签 java android numbers compareto letters

我正在使用以下 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() 会进行词典 比较。 More information在 Java String 类文档中。

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

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

关于java - 修改Android中的compareTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034942/

相关文章:

java - 如何确定数字是以 .5 还是 .0 结尾

java - Android 对手电筒模式的支持

Java使用java函数表达式抽象出通用代码

Java JPanel 在 BorderLayout 中展开一个面板

java - JPA 映射 : "QuerySyntaxException: foobar is not mapped..."

java - 如何通过用户输入从sqlite检索数据

android - 使用gradle作为应用程序的一部分在AAR中生成资源

swift - 在苹果 Swift 中使用巨大的数字

.net - 如何正确捕获SqlException:发生传输级错误

java - 为什么我不能在 Servlet 中初始化 Mongo