String类有许多用于比较字符串和比较部分字符串的方法。下表列出了这些方法。
比较字符串的方法
| 方法 | 描述 |
|---|---|
boolean endsWith(String suffix)<br />boolean startsWith(String prefix) |
如果此字符串以指定为方法参数子字符串结尾或以该子字符串开头,则返回true。 |
boolean startsWith(String prefix, int offset) |
考虑以索引offset开头的字符串,如果以指定为参数的子字符串开头,则返回true。 |
int compareTo(String anotherString) |
按字典顺序比较两个字符串。返回一个整数,该整数指示此字符串是否大于(结果> 0),等于(结果= 0)还是小于(结果<0)参数。 |
int compareToIgnoreCase(String str) |
按字典顺序比较两个字符串,忽略大小写差异。返回一个整数,该整数指示此字符串是否大于(结果> 0),等于(结果= 0)还是小于(结果<0)参数。 |
boolean equals(Object anObject) |
当且仅当参数是一个与此对象相同字符序列的String对象时,才返回true。 |
boolean equalsIgnoreCase(String anotherString) |
当且仅当参数是一个表示与此对象相同字符序列的String对象时,才返回true,忽略大小写差异。 |
boolean regionMatches(int toffset, String other, int ooffset, int len) |
测试此字符串的指定区域是否与String参数的指定区域匹配。区域的长度是len,从该字符串的toffset以及其他字符串的ooffset索引处开始。 |
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) |
测试此字符串的指定区域是否与String参数的指定区域匹配。区域的长度是len,从该字符串的toffset以及其他字符串的ooffset索引处开始。布尔参数指示是否应忽略大小写;如果为true,则在比较字符时忽略大小写。 |
boolean matches(String regex) |
测试此字符串是否与指定的正则表达式匹配。在标题为“正则表达式”的课程中讨论了正则表达式。 |
以下程序RegionMatchesDemo,使用regionMatches方法在一个字符串中搜索另一个字符串:
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.");}}
该程序的输出为Eggs。
程序一次遍历searchMe引用的字符串的一个字符。 对于每个字符,程序都会调用regionMatches方法来确定以当前字符开头的子字符串是否与程序正在寻找的字符串匹配。
