Java で大文字と小文字を区別せずに文字列に別の文字列が含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

Java で大文字と小文字を区別せずに文字列に別の文字列が含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

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 の回答に賛成票を投じてください。

おすすめ記事