CompareTo方法错误

时间:2015-09-26 11:26:11

标签: java

本程序将输出显示为

-1
1
-12

为什么-12 ??当使用compareTo方法时,它应该只返回1,-1或0输出

class psp
{
  public static void main(String gg[])
  {
    String a="AMIT";
    String b="BA";
    String c="AB";
    String d="ANURAG";
    System.out.println(a.compareTo(b));
    System.out.println(b.compareTo(c));
    System.out.println(c.compareTo(d));
  }
}

3 个答案:

答案 0 :(得分:2)

来自javadocs:

  

返回负整数,零或正整数   object小于,等于或大于指定的对象。

因此它可以返回任何整数,而不仅仅是abs

答案 1 :(得分:0)

如果您看到String#compareTo(String)的源代码,如果字符不相等,它会逐字符比较字符串,它会返回字符之间的差异,以便检查每种情况。

  

"AMIT".compareTo("BA")

  1. A != B返回A - B(65 - 66),即-1
  2.   

    "BA".compareToAb("AB")

    1. B != A返回B - A(66 - 65)即1
    2.   

      "AB".compareToAb("ANURAG")

      1. A == A条件true检查下一个字符。
      2. B != N返回B - N(66-78)返回-12

答案 2 :(得分:0)

它不会给输出1,-1,0因为compareTo()方法按字典顺序比较两个字符串。

 s1.compareTo(s2)

1。 compareTo()返回0,如果两个s1 lexicagraphically等于s2。 2.如果s2字符串按字典顺序大于s1字符串,则comapareTo()返回小于0的值。 3 compareTo()返回大于0的值,如果s2字符串按字典顺序小于s1字符串