Javaで文字列(String)の一部を比較する方法について記載します。
目次
文字列(String)の一部を比較する方法
regionMatches メソッドを使用します。
regionMatches では、引数により大文字・小文字を区別する / しないを変更することができます。
1. 大文字・小文字を区別して比較する
引数が多く分かりにくいのですが、文字列Aと文字列Bを比較する場合
第1引数:文字列Aのどの部分から比較するか開始インデックスを指定します。
第2引数:文字列Bを指定します。
第3引数:文字列Bのどの部分から比較するか開始インデックスを指定します。
第4引数:比較する文字数を指定します。
構文
regionMatches(int toffset, String other, int ooffset, int len)
戻り値
boolean:true( 一致 )、false( 不一致 )
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
String str = "abcde"; // 一致する場合 // 文字列 abcde の インデックス1番目から3文字 "bcd" // 文字列 bbcdd の インデックス1番目から3文字 "bcd" // を比較( "bcd" = "bcd" のため true が返る boolean ret1 = str.regionMatches(1, "bbcdd", 1, 3); System.out.println( ret1 ); // true // 不一致の場合( 大文字・小文字は区別して比較 ) // 文字列 abcde の インデックス1番目から3文字 "bcd" // 文字列 bbcdd の インデックス1番目から3文字 "BCD" // を比較( "bcd" <> "BCD" のため false が返る boolean ret2 = str.regionMatches(1, "BBCDD", 1, 3); System.out.println( ret2 ); // false // 不一致の場合( 比較する文字長が不正(実際の文字列より長い)場合は、false )) boolean ret3 = str.regionMatches(1, "bbcdd", 1, 10); System.out.println( ret3 ); // false |
2. 大文字・小文字を区別しないで比較する
先の例より引数が1つ多く、全部で5つあります。
ただし、先頭に1つ引数が追加されただけで、第2〜5引数は先ほどと同じです。
第1引数は、大文字・小文字を区別する / しないのフラグになります。
true:大文字・小文字を区別しない。
false:大文字・小文字を区別する。
構文
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
戻り値
boolean:true( 一致 )、false( 不一致 )
実行例
1 2 3 4 5 6 7 8 |
String str = "abcde"; // 大文字・小文字は区別しないで比較 // 文字列 abcde の インデックス1番目から3文字 "bcd" // 文字列 bbcdd の インデックス1番目から3文字 "BCD" // 大文字・小文字を区別しないで比較するため true が返る boolean ret1 = str.regionMatches(true, 1, "BBCDD", 1, 3); System.out.println( ret1 ); // true |