The String class has a number of methods for comparing strings and portions of strings. The following table lists these methods.
| Method | Description | 
|---|---|
| boolean endsWith(String suffix) | Returns trueif this string ends with or begins with the substring specified as an argument to the method. | 
| boolean startsWith(String prefix, int offset) | Considers the string beginning at the index offset, and returnstrueif it begins with the substring specified as an argument. | 
| int compareTo(String anotherString) | Compares two strings lexicographically. Returns an integer indicating whether this string is greater than (result is > 0), equal to (result is = 0), or less than (result is < 0) the argument. | 
| int compareToIgnoreCase(String str) | Compares two strings lexicographically, ignoring differences in case. Returns an integer indicating whether this string is greater than (result is > 0), equal to (result is = 0), or less than (result is < 0) the argument. | 
| boolean equals(Object anObject) | Returns trueif and only if the argument is aStringobject that represents the same sequence of characters as this object. | 
| boolean equalsIgnoreCase(String anotherString) | Returns trueif and only if the argument is aStringobject that represents the same sequence of characters as this object, ignoring differences in case. | 
| boolean regionMatches(int toffset, String other, int ooffset, int len) | Tests whether the specified region of this string matches the specified region of the String argument. Region is of length  | 
| boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) | Tests whether the specified region of this string matches the specified region of the String argument. Region is of length  The boolean argument indicates whether case should be ignored; if true, case is ignored when comparing characters. | 
| boolean matches(String regex) | Tests whether this string matches the specified regular expression. Regular expressions are discussed in the lesson titled "Regular Expressions." | 
The following program, RegionMatchesDemo, uses the regionMatches method to search for a string within another string:
public class RegionMatchesDemo {
    public static void main(String[] args) {
        String searchMe = "Green Eggs and Ham";
        String findMe = "Eggs";
        int searchMeLength = searchMe.length();
        int findMeLength = findMe.length();
        boolean foundIt = false;
        for (int i = 0; 
             i <= (searchMeLength - findMeLength);
             i++) {
           if (searchMe.regionMatches(i, findMe, 0, findMeLength)) {
              foundIt = true;
              System.out.println(searchMe.substring(i, i + findMeLength));
              break;
           }
        }
        if (!foundIt)
            System.out.println("No match found.");
    }
}
The output from this program is Eggs.
The program steps through the string referred to by searchMe one character at a time. For each character, the program calls the regionMatches method to determine whether the substring beginning with the current character matches the string the program is looking for.