首先来看一段代码:

   
   
   
   
  1. String s1 = "abcd"
  2. String s2 = "abce"
  3. String s3 = "Abc"
  4. String s4 = "abcdefg"
  5. System.out.println(s1.compareTo(s2)); //-1
  6. System.out.println(s1.compareTo(s3)); //32
  7. System.out.println(s4.compareTo(s1)); //3
  8. System.out.println(s4.compareTo(s2)); //-1

Java中String类有一个compareTo方法,该方法返回一个int类型的数据。其比较规则是:拿出字符串的第一个字符与参数的第一个字符进行比较,如果两者不等,比较结束,返回两者的ascii差,即字符串的第一个字符减去参数的第一个字符的ascii码值,比如代码第五行的-1.如果相等,则比较第二个字符,以此类推。比较到最后还是相等的,方法返回值为0。

这里有一点需要注意:如果两个字符串的长度不同,并且一个字符串与另一个字符串的前面N个字符相等,那么这个方法返回返回两个字符串长度之差。比如代码第七行返回值为3.