regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len);
regionMatches(int toffset,String other,int ooffset,int len);
上述兩個方法用來比較兩個字符串中指定區域的子串。入口參數中,用toffset和ooffset分別指出當前字符串中的子串起始位置和要與之比較的字符串中的子串起始地址;len 指出比較長度。前一種方法可區分大寫字母和小寫字母,如果在 boolean ignoreCase處寫 true,表示將不區分大小寫,寫false則表示將區分大小寫。而後一個方法認為大小寫字母有區別。由此可見,實際上前一個方法隱含瞭後一個方法的功能。比如:
String s1= “tsinghua”
String s2=“it is TsingHua”;
s1.regionMatches(0,s2,6,7);
最後一個語句表示將s1字符串從第0個字符“t”開始和s2字符串的第6個字符“T”開始逐個比較,共比較7對字符,由於區分大小寫,所以結果為false。
但如果最後一個語句改為:
s1.regionMatches(true,0,s2,6,7);
則結果為true,因為入口參數中true表示忽略大小寫區別。
我們可以使用這個方法來判斷某一個字符串是否以某個或某段具體的串為結,我們可以這樣使用:
private static boolean endsWith(String str, String suffix, boolean ignoreCase)
{
if(str == null || suffix == null)
return str == null && suffix == null;
if(suffix.length() > str.length())
{
return false;
} else
{
int strOffset = str.length() – suffix.length();
return str.regionMatches(ignoreCase, strOffset, suffix, 0, suffix.length());
}
}
摘自 執行夢想代碼