Java 比较方法误差
该程序以如下方式提供输出:Java 比较方法误差,java,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
-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));
}
}
来自javadocs:
返回负整数、零或正整数,如下所示
对象小于、等于或大于指定对象
因此,它可以返回任何整数,而不仅仅是
-1,0,1
如果您看到它的源代码,它会逐个字符比较字符串,如果字符不相等,它会返回字符之间的差异,以便检查每个大小写
“AMIT”。与(“BA”)相比
A!=B
返回A-B
(65-66)即-1
“BA”。比较AB(“AB”)
B!=A
返回B-A
(66-65)即1
“AB”。比较AB(“ANURAG”)
A==A
条件为真检查下一个字符
B!=N
returnB-N
(66-78)return-12
它不会给出输出1,-1,0,因为compareTo()方法按字典顺序比较两个字符串
s1.compareTo(s2)
一,。如果两个s1在词汇上等于s2,则compareTo()返回0。
2.如果s2字符串按字典顺序大于s1字符串,则comapareTo()返回小于0的值。
3 compareTo()返回大于0的值,如果s2字符串按字典顺序小于s1字符串,则返回按字典顺序小于
的数字。从文档。。。。将此对象与指定的顺序对象进行比较。返回一个负整数、零或正整数,因为此对象小于、等于或大于指定的对象。您在哪里读取它应该是-1或1?您将始终希望读取文档。