1. ホーム
  2. java

1つの文字列と複数の値を1つの式で比較する

2023-09-27 16:30:24

質問

1つのString変数を持っています。 str で、可能な値は val1 , val2val3 .

比較したい(イコールケースで) str を、例えばif文を使ってこれらの値すべてと比較したい。

if("val1".equalsIgnoreCase(str)||"val2".equalsIgnoreCase(str)||"val3".equalsIgnoreCase(str))
{
      //remaining code
}

複数のOR (||) 演算子を使用せず、1つの式で値を比較する方法はありますか?例えば、このように。

 if(("val1" OR "val2" OR "val3").equalsIgnoreCase(str)   //this is only an idea.

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

私はより良い解決策を見つけました。これは、RegExによって実現することができます。

if (str.matches("val1|val2|val3")) {
     // remaining code
}

大文字・小文字を区別しないマッチングを行う場合。

if (str.matches("(?i)val1|val2|val3")) {
     // remaining code
}