小编典典

在一个表达式中将一个字符串与多个值进行比较

java

我有一个字符串变量,str有可能值val1val2val3

我想str使用if语句将所有这些值进行比较(大小写相等),例如:

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

有没有一种方法可以避免使用多个OR(||)运算符并在一个表达式中比较值?例如,像这样:

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

阅读 335

收藏
2020-09-08

共1个答案

小编典典

我找到了更好的解决方案。这可以通过RegEx实现:

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

对于不区分大小写的匹配:

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