compareToIgnoreCase 大、小を区別せず、アルファベット順に比較する
contenEquals 文字列バッファの内容が同じかどうか調べる
equalsIgnoreCase 大、小文字を区別しない場合に同じか調べる
matches 正規表現にマッチするか調べる
regionMatches 指定した範囲の文字列のみを比較する
書式 public int compareToUgnoreCase(String str) public boolean contenEquals(StringBuffer sb) public boolean equalsIgnoreCase(String str) public boolean matches(String regex) public boolean regionMatches([boolean ignoreCase,]int toffset,String other,int ooffset, int len
引数 str:比較の対象となる文字列、sb:比較の対象となる文字列バッファ、regex:正規表現、ignoreCase:大文字、小文字を無視するか、toffset:比較される文字列のオフセット、other:比較する文字列を含む文字列、ooffset:比較する文字列のオフセット、len:比較する文字列
compareToIgnoreCaseメソッドは、大文字、小文字の区別をせずに、文字列をアルファベット順に比較します。引数に指定した文字列が、比較お対象となる文字列よりも後ろに来る場合は負の値 、等しい場合は0、前に来る場合には正の値を返します。
contentEqualsメソッド八文字列が指定した文字列バッファ(StringBufferオブジェクト)と同じ文字の並びを持つ場合、trueを返します。
equalsIgnoreCaseメソッドは、大文字、小文字を区別せずに比較して、等しければtrueを返します。ここでの等しいとは、以下の3つのうちどれか一つに該当する場合をいいます。
・”==”演算子で比較した場合にtrueが返される
・Character.toUpperCase(char)を両文字列の各文字に適応すると、同じ結果が得られる。
・Character.toLowerCase(char)を両文字列の各文字に適応すると、同じ結果が得られる。
regionMatchesメソッドは、指定した範囲の文字列のみを比較します。
/*文字列を比較します
public class STCompareStringSample {
public static void main(String[] args) {
String str= "Java!";
String strUp = "JAVA!";
String strMes = "Do you enjoy Java?";
StringBuffer strBuf = new StringBuffer("JAVA!");
if (str.compareToIgnoreCase("C!") > 0) {
System.out.println("C! > Java!");
}
if (str.contentEquals(strBuf)) {
System.out.println(str + "と" + strBuf + "は等しいです。");
}
if (str.equalsIgnoreCase(strUp)) {
System.out.println(str + "と" + strUp + "は等しいです");
}
String strNum = "0123-456";
if (strNum.matches("[0-9]{4}-[0-9]{3}")) {
System.out.println("7桁の郵便番号です。");
}
if (str.regionMatches(0, strMes, 13, 4)) {
System.out.println(
str + "の0文字目からの4文字と" + strMes + "の13文字目からの4文字は等しいです。");
}
}
}
実行結果
C! > Java!
Java!とJAVA!は等しいです。
7桁の郵便番号です。
Java!の0文字目からの4文字とDo you enjoy Java?の13文字目からの4文字は等しいです。