What is the difference between equals and compareTo in Java?


The compareTo() method compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argument string.

  • The result is a negative integer if this String object lexicographically precedes the argument string.
  •  The result is a positive integer if this String object lexicographically follows the argument string.
  •  The result is zero if the strings are equal, compareTo returns 0 exactly when the equals(Object) method would return true.

Example

Live Demo

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

      // comparing str1 and str2
      int retval = str1.compareTo(str2);

      // prints the return value of the comparison
      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");
      }
   }
}

Output

str1 is less than str2

Updated on: 18-Jun-2020

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements