1. ホーム
  2. java

[解決済み] Javaで大文字と小文字を区別せずに文字列が他の文字列を含むかどうかを確認するにはどうすればよいですか?

2022-03-21 07:13:55

質問

2つの文字列があるとします。

String s1 = "AbBaCca";
String s2 = "bac";

を返すチェックを行いたい。 s2s1 . でできるんです。

return s1.contains(s2);

間違いなく contains() は大文字と小文字を区別しますが、ドキュメントを読んだだけでは確実な判断はできません。もしそうであれば、私のベストな方法は次のようなものだと思います。

return s1.toLowerCase().contains(s2.toLowerCase());

このことはさておき、大文字小文字の区別を気にせずにこれを実現する(おそらくよりよい)他の方法はないでしょうか?

どのように解決するのですか?

はい、containsは大文字と小文字を区別します。 java.util.regex.PatternにCASE_INSENSITIVEフラグを付けると、大文字と小文字を区別しないマッチングが可能です。

Pattern.compile(Pattern.quote(wantedStr), Pattern.CASE_INSENSITIVE).matcher(source).find();

EDITです。 s2に正規表現の特殊文字が含まれている場合(たくさんあります)、最初に引用することが重要です。 私の回答は最初に目にするものなので修正しましたが、Matt Quailの回答は彼が指摘したものなので、投票しましょう。