当前位置: 首页 > 知识库问答 >
问题:

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

酆乐湛
2023-03-14

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

if("val1".equalsIgnoreCase(str)||"val2".equalsIgnoreCase(str)||"val3".equalsIgnoreCase(str))
{
      //remaining code
}
 if(("val1" OR "val2" OR "val3").equalsIgnoreCase(str)   //this is only an idea.

共有1个答案

劳昊明
2023-03-14

很抱歉重新提出这个老问题,对于Java8+,我认为最好的解决方案是Elliott Frisch提供的方案(stream.of(“str1”,“str2”,“str3”).anymatches(str::equalsignorecase)),但它似乎缺少了一个最早版本的Java最简单的解决方案:

if(Arrays.asList("val1", "val2", "val3", ..., "val_n").contains(str.toLowerCase())){
//...
}

您可以通过检查变量str的非空性以及在创建后缓存列表来应用一些错误预防措施。

// List of lower-case possibilities
final List<String> list = Arrays.asList("val1", "val2", "val3", ..., "val_n");
for(String str : somethingYouCouldTheReadStringFrom()){
  if(str != null && list.contains(str.toLowerCase())){
    //...
  }
}
 类似资料: