Comparing Strings

String Comparison

Java String class provides methods for comparing two strings such as equals(), equalsIgnoreCase(), compareTo().

Method Purpose
compareTo(String) Compares two strings. Returns 0 if they are equal, a negative value if the specified string is greater than the string or a positive value otherwise.
compareToIgnoreCase(String) Compares two strings, ignoring case differences
equals(Object) Returns true if the string matches the object.
equalsIgnoreCase(String) returns true if the argument is not null and it represents an equivalent String ignoring case
endsWith(String) Returns true if the string ends with the specified string.
startsWith(String) Returns true if the string starts with the specified string.
startsWith(String, int offset) Returns true if the string starts with the specified string at the specified offset.
regionMatches(int toffset,String other, int ooffset, int len) Returns true if the specified region of the string matches the specified region of a different string.
where,
toffset – the starting offset of the subregion in this string.
other – the string argument.
ooffset – the starting offset of the subregion in the string argument.
len – the number of characters to compare.
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) Returns true if the specified region of the string matches the specified region of a different string.
where,
ignoreCase – if true, ignore case when comparing characters.
toffset – the starting offset of the subregion in this string.
other – the string argument.
ooffset – the starting offset of the subregion in the string argument.
len – the number of characters to compare.

Java String comparison with compareTo()

int compareTo(String anotherString)
int compareToIgnoreCase(String anotherString)
These two methods return,
0, if the argument string is equal to this string;
negative integer, if this string is less than the string argument;
positive integer, if this string is greater than the string argument.

package com.ibytecode.strings.methods;
public class ComparingStrings {
	public static void main(String[] args) {
		String ONE = "ONE";
		String One = "One";
		// compareTo(String)
		System.out.println(ONE.compareTo(One));
		System.out.println(ONE.compareTo(ONE));
		System.out.println(One.compareTo(ONE));
		System.out.println(One.compareToIgnoreCase(ONE));
	}
}

-32
0
32
0

Java String comparison with equals()

public boolean equals(Object anObject)
public boolean equalsIgnoreCase(String anotherString)

package com.ibytecode.strings.methods;
public class ComparingStrings {
	public static void main(String[] args) {
		String ONE = "ONE";
		String One = "One";
		System.out.println("ONE.equals(One): " + ONE.equals(One));
		System.out.println("ONE.equalsIgnoreCase(One): "
				+ ONE.equalsIgnoreCase(One));
	}
}

ONE.equals(One): false
ONE.equalsIgnoreCase(One): true

String ends with specified string

package com.ibytecode.strings.methods;
public class ComparingStrings {
	public static void main(String[] args) {
		String str = "My favorite language is Java";
		boolean result1 = str.endsWith("Java");
		System.out.println(result1);
	}
}

true

String starts with specified string

package com.ibytecode.strings.methods;

public class ComparingStrings {
	public static void main(String[] args) {
		String str = "My favorite language is Java";
		
		boolean result2 = str.startsWith("My");
		
		// see if starting in offset 24 str starts with "Java"
		boolean result3 = str.startsWith("Java", 24);

		System.out.println(result2);
		System.out.println(result3);
	}
}

true
true

String region matches

package com.ibytecode.strings.methods;

public class ComparingStrings {
	public static void main(String[] args) {
		String str = "My favorite language is Java";
		String str2 = new String("I like the Java language");
		String str3 = new String("I LIKE THE JAVA LANGUAGE");
		
		/* compare regions. Start at offset 24 in str and 
		compare against offset 11 in str2 for 4 characters */
		boolean regionMatch1 = str.regionMatches(24, str2, 11, 4);
		boolean regionMatch2 = str3.regionMatches(true, 11, str2, 11, 4);
		boolean regionMatch3 = str3.regionMatches(false, 11, str2, 11, 4);
		
		System.out.println(regionMatch1);
		System.out.println(regionMatch2);
		System.out.println(regionMatch3);
	}
}

true
true
false

Leave a Comment