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

2 comments on “Java String compareTo() examples

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

    Reply
  2. 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.

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *