Java – Compare two Strings Lexicographically
To compare two strings lexicographically in Java, use String.compareTo() method. Call compareTo() method on this string, and pass the string we would like compare this string with as argument.
In the following example, we will compare str1
with str2
.
If str1
is less than str2
lexicographically, then str1.compareTo(str2) returns a negative value. The negative value is the difference between str1
and str2
.
Java Program
public class Example {
public static void main(String[] args) {
String str1 = "apple";
String str2 = "carrot";
int result = str1.compareTo(str2);
System.out.println("Result : " + result);
}
}
Output
Result : -2
If str1
is equal to str2
lexicographically, then str1.compareTo(str2) returns a zero.
Java Program
public class Example {
public static void main(String[] args) {
String str1 = "apple";
String str2 = "apple";
int result = str1.compareTo(str2);
System.out.println("Result : " + result);
}
}
Output
Result : 0
If str1
is greater than str2
lexicographically, then str1.compareTo(str2) returns a positive value. The positive value is the difference between str1
and str2
.
Java Program
public class Example {
public static void main(String[] args) {
String str1 = "mango";
String str2 = "apple";
int result = str1.compareTo(str2);
System.out.println("Result : " + result);
}
}
Output
Result : 12
Comparison of strings using String.compareTo() is case sensitive, meaning “Apple” is less than “apple” lexicographically. If we need to ignore case while comparison, we may use String.compareToIgnoreCase() method.
Java Program
public class Example {
public static void main(String[] args) {
String str1 = "Apple";
String str2 = "apple";
int result = str1.compareToIgnoreCase(str2);
System.out.println("Result : " + result);
}
}
Output
Result : 0
Conclusion
In this Java Tutorial, we learned how to compare two strings lexicographically in Java.