Java中的equals和compareTo有什么区别?

compareTo()方法按字典顺序比较两个字符串。比较是基于字符串中每个字符的Unicode值。在字典上比较此String对象表示的字符序列与自变量字符串表示的字符序列。

  • 如果此String对象在字典上在参数字符串之前,则结果为负整数。

  •  如果此String对象在字典上跟随自变量字符串,则结果为正整数。

  •  如果字符串相等,则结果为零,当equals(Object)方法返回true时,compareTo返回0。

示例

public class StringDemo {
   public static void main(String[] args) {
      String str1 = "tutorials", str2 = "point";

      //比较str1和str2-
      int retval = str1.compareTo(str2);

      //打印比较的返回值
      if (retval < 0) {
         System.out.println("str1 is greater than str2");
      } else if (retval == 0) {
         System.out.println("str1 is equal to str2");
      } else {
         System.out.println("str1 is less than str2");
      }
   }
}

输出结果

str1 is less than str2