本程序将输出显示为
-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));
}
}
答案 0 :(得分:2)
来自javadocs:
返回负整数,零或正整数 object小于,等于或大于指定的对象。
因此它可以返回任何整数,而不仅仅是abs
答案 1 :(得分:0)
如果您看到String#compareTo(String)
的源代码,如果字符不相等,它会逐字符比较字符串,它会返回字符之间的差异,以便检查每种情况。
"AMIT".compareTo("BA")
A != B
返回A - B
(65 - 66),即-1
"BA".compareToAb("AB")
B != A
返回B - A
(66 - 65)即1
"AB".compareToAb("ANURAG")
A == A
条件true检查下一个字符。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字符串