Java String compareTo() examples

The Java String compareTo() method compares two strings lexicographically (alphabetical order). It returns a positive number, negative number, or zero.


  s1.compareTo(s2)
  • if s1 < s2, it returns negative number.
  • if s1 > s2, it returns positive number.
  • if s1 == s2, it returns 0.

Table of contents

1. “a”.compareTo(“c”), negative integer

The "a" is lexicographically precedes the argument string "c"; it returns a negative integer.

In simple words, for lexicographical or alphabetical order, "a" comes before the "c" and returns a negative integer.


  System.out.println("a".compareTo("b")); // -1
  System.out.println("a".compareTo("c")); // -2
  System.out.println("a".compareTo("d")); // -3
  System.out.println("a".compareTo("e")); // -4

  System.out.println("1".compareTo("2")); // -1
  System.out.println("1".compareTo("3")); // -2
  System.out.println("1".compareTo("4")); // -3
  System.out.println("1".compareTo("5")); // -4

2. “c”.compareTo(“a”), positive integer

The "c" lexicographically follows the argument string "a"; it returns positive integer 2.

In simple words, for lexicographical or alphabetical order, "c" comes after the "a" and returns a positive integer.


  System.out.println("b".compareTo("a")); // 1
  System.out.println("c".compareTo("a")); // 2
  System.out.println("d".compareTo("a")); // 3
  System.out.println("e".compareTo("a")); // 4

  System.out.println("2".compareTo("1")); // 1
  System.out.println("3".compareTo("1")); // 2
  System.out.println("4".compareTo("1")); // 3
  System.out.println("5".compareTo("1")); // 4

3. “a”.compareTo(“a”), zero

If the strings are equal, it returns zero or 0.


  System.out.println("a".compareTo("a")); // 0

  System.out.println("1".compareTo("1")); // 0

4. “a”.compareTo(“ab”), different lengths

For different lengths comparison strings, it works the same.


  System.out.println("a".compareTo("ab"));    // -1
  System.out.println("a".compareTo("abc"));   // -2
  System.out.println("a".compareTo("abcd"));  // -3

  System.out.println("11".compareTo("112"));    // -1
  System.out.println("11".compareTo("1123"));   // -2
  System.out.println("11".compareTo("11234"));  // -3

5. compareToIgnoreCase()

The Java String compareToIgnoreCase() method compares two strings lexicographically, ignoring cases.


  System.out.println("a".compareTo("A"));           // 32
  System.out.println("a".compareToIgnoreCase("A")); // 0

6. Java String compareTo() examples

Below is a complete Java String compareTo() examples.

StringCompareTo.java

package com.mkyong.string.compare;

public class StringCompareTo {

    public static void main(String[] args) {

        System.out.println("-Negative Number-");
        System.out.println("a".compareTo("b")); // -1
        System.out.println("a".compareTo("c")); // -2
        System.out.println("a".compareTo("d")); // -3
        System.out.println("a".compareTo("e")); // -4

        System.out.println("1".compareTo("2")); // -1
        System.out.println("1".compareTo("3")); // -2
        System.out.println("1".compareTo("4")); // -3
        System.out.println("1".compareTo("5")); // -4

        System.out.println("-Positive Number-");
        System.out.println("b".compareTo("a")); // 1
        System.out.println("c".compareTo("a")); // 2
        System.out.println("d".compareTo("a")); // 3
        System.out.println("e".compareTo("a")); // 4

        System.out.println("2".compareTo("1")); // 1
        System.out.println("3".compareTo("1")); // 2
        System.out.println("4".compareTo("1")); // 3
        System.out.println("5".compareTo("1")); // 4

        System.out.println("-Zero-");
        System.out.println("a".compareTo("a")); // 0
        System.out.println("1".compareTo("1")); // 0

        System.out.println("-Vary Length-");
        System.out.println("a".compareTo("ab"));    // -1
        System.out.println("a".compareTo("abc"));   // -2
        System.out.println("a".compareTo("abcd"));  // -3

        System.out.println("11".compareTo("112"));    // -1
        System.out.println("11".compareTo("1123"));   // -2
        System.out.println("11".compareTo("11234"));  // -3

        System.out.println("-compareToIgnoreCase-");
        System.out.println("a".compareTo("A")); // 32
        System.out.println("a".compareToIgnoreCase("A")); // 0

    }

}

Output

Terminal

-Negative Number-
-1
-2
-3
-4
-1
-2
-3
-4
-Positive Number-
1
2
3
4
1
2
3
4
-Zero-
0
0
-Vary Length-
-1
-2
-3
-1
-2
-3
-compareToIgnoreCase-
32
0

7. Download Source Code

$ git clone https://github.com/mkyong/core-java

$ cd java-string

8. References

About Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

Subscribe
Notify of
2 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
Shivam Pathak
1 year ago

Your blog about comparing two strings is very helpful to me. Thanks for sharing such valuable information.

tani
1 year ago

Thanks for sharing me Java String compare To() examples. your blog is The Java String compare To() method compares two strings lexicographically (alphabetical order). It returns a positive number, negative number, or zero.