Home
Java
String compareTo, compareToIgnoreCase
Updated May 21, 2023
Dot Net Perls
CompareTo. In sorting, one string will come before or after another. Sometimes two strings are equal. With compareTo we determine lexical ordering.
In Java, we call compareTo on a String instance. We pass one argument—this is the string we are comparing against the instance string.
First example. Let us test the compareTo method. The string "bird" should come before the string "cat." It is alphabetically earlier.
Result We find that the compareTo method returns -1 when the earlier string is the instance, and the later string is the argument.
public class Program { public static void main(String[] args) { String value1 = "cat"; String value2 = "bird"; // Compare these strings. int result1 = value1.compareTo(value2); System.out.println("cat compareTo bird = " + result1); int result2 = value2.compareTo(value1); System.out.println("bird compareTo cat = " + result2); // Compare string against itself. // ... It is equal so the result is 0. int result3 = value1.compareTo(value1); System.out.println("cat compareTo cat = " + result3); } }
cat compareTo bird = 1 bird compareTo cat = -1 cat compareTo cat = 0
CompareToIgnoreCase. With compareTo, strings are compared based on their ordinal values. In ASCII, uppercase letters have lower values than lowercase ones.
ASCII Table
So A lowercase letter will be sorted after an uppercase letter. Often this does not make sense for real programs.
Here We use the compareToIgnoreCase method to treat lowercase and uppercase letters the same.
public class Program { public static void main(String[] args) { String value1 = "DOG"; String value2 = "bird"; // This is negative, so DOG comes before bird. int result1 = value1.compareTo(value2); System.out.println(result1); // Ignore case. // ... Now bird comes before dog (the result is positive). int result2 = value1.compareToIgnoreCase(value2); System.out.println(result2); } }
-30 2
Result value. The key part about compareTo (and compareToIgnoreCase) is that the result int is negative, positive, or zero. These mean different sort orders.
Note If compareTo returns a negative number, the instance string comes before the argument.
Note 2 When a positive number is returned, the instance string comes after the argument string.
Note 3 A zero is returned when the two strings have an equal sorting order. They are equal in content.
A final note, sorting. With compareTo and compareToIgnoreCase, we often implement a sorting method. We can directly return the result of compareTo.
sort
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on May 21, 2023 (edit).
Home
Changes
© 2007-2025 Sam Allen