java - compareTo 如何工作?

标签 java equals comparable compareto

我知道 compareTo 返回一个字符串与另一个字符串的相关程度的否定或肯定结果,但为什么:

public class Test {
    public static void main(String[] args) {
        String y = "ab2";
        if(y.compareTo("ac3") == -1) {
            System.out.println("Test");
        }
    }
}

为真且

public class Test {
    public static void main(String[] args) {
        String y = "ab2";
        if(y.compareTo("ab3") == -1) {
            System.out.println("Test");
        }
    }
}

也是这样吗?

最佳答案

总承包 Comparable.compareTo(o) 是返回

  • 如果它大于另一个对象,则为正整数。
  • 如果它低于另一个对象,则为负整数。
  • 如果 this 等于另一个对象则为 0。

在你的例子中 "ab2".compareTo("ac3") == -1"ab2".compareTo("ab3") == -1 仅表示 "ab2"低于"ac3""ab3" .您无法就 "ac3" 得出任何结论和 "ab3"只有这些例子。

此结果自 b 以来是预期的在 c 之前在字母表中(所以 "ab2" < "ac3" )和 23 之前(所以 "ab2" < "ab3" ):Java 对字符串 lexicographically 进行排序.

关于java - compareTo 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443402/

相关文章:

java - Fading ActionBar Lib 的自定义布局

javascript - 使用javascript比较三个变量

java - BST 相等性检查

java - 比较两个对象的不同属性集

java - Java 泛型的问题

使用许多属性进行 Java 对象比较

Java : Comparable vs Comparator

java - Clojure 代码的 Sonarqube 静态代码分析

java - 两次 eclipse 警告的原因

java - 互操作性 Azure 服务总线消息队列消息