2つの弦があるとします。
String s1 = "AbBaCca";
String s2 = "bac";
s2
に含まれるを返すチェックを実行したいのですが、s1
次のように実行できます。
return s1.contains(s2);
大文字と小文字が区別されるのは確かですcontains()
が、ドキュメントを読んでも確実にはわかりません。区別されるのであれば、最善の方法は次のようになると思います。
return s1.toLowerCase().contains(s2.toLowerCase());
これらはすべてさておき、大文字と小文字を区別せずにこれを実現する別の(おそらくより良い)方法はありますか?
ベストアンサー1
はい、contains は大文字と小文字を区別します。大文字と小文字を区別しない一致には、CASE_INSENSITIVE フラグを指定した java.util.regex.Pattern を使用できます。
Pattern.compile(Pattern.quote(wantedStr), Pattern.CASE_INSENSITIVE).matcher(source).find();
編集: s2 に正規表現の特殊文字 (多数あります) が含まれている場合は、最初にそれを引用することが重要です。最初に目にするのは私の回答なので修正しましたが、この点を指摘してくれた Matt Quail の回答に賛成票を投じてください。