java中的String的compareTo()方法问题是什么?

public void inputMoreTimes(){
String result ="hello,word!";
String result2="bhello,w";
System.out.println(result.compareTo(result2));
System.out.println("hello".compareTo("hello,"));

}
为什么两个值不一样? 一个是6 ,一个是-1

Java中String类有一个compareTo方法,该方法返回一个int类型的数据。其比较规则是:拿出字符串的第一个字符与参数的第一个字符进行比较,如果两者不等,比较结束,返回两者的ascii差,即字符串的第一个字符减去参数的第一个字符的ascii码值,比如代码第五行的-1.如果相等,则比较第二个字符,以此类推。比较到最后还是相等的,方法返回值为0。
这里有一点需要注意:如果两个字符串的长度不同,并且一个字符串与另一个字符串的前面N个字符相等,那么这个方法返回返回两个字符串长度之差。比如代码第七行返回值为3.
举例如下:
String s1 = "abcd";
String s2 = "abce";
String s3 = "Abc";
String s4 = "abcdefg";
System.out.println(s1.compareTo(s2));
System.out.println(s1.compareTo(s3));
System.out.println(s4.compareTo(s1));
System.out.println(s4.compareTo(s2));
输出:-1 32 3 -1
温馨提示:答案为网友推荐,仅供参考
相似回答