更准确地说,是否可以做这样的事情:

  String[]  varIn={"1",
                   "2",
                   "3"};
  in=input.nextLine();
  if(in.equalsIgnoreCase(varIn[0]) ||
     in.equalsIgnoreCase(varIn[1]) ||
     in.equalsIgnoreCase(varIn[2]))
                  System.out.println(" it works! ");


变成这样的东西:

  String[]  varIn={"1",
                   "2",
                   "3"};
 in=input.nextLine();
 if(in.equalsIgnoreCase(varIn[])) // << varIn[]'s place should contain all
                                  //    the strings in varIn[]
                  System.out.println(" it works! ");


其中if(in.equalsIgnoreCase(varIn []))将包含要比较数组中所有字符串的所有字符串。我很确定有办法做到这一点,但是我不知道怎么做。任何人都有其他选择或解决方案吗?提前致谢!

编辑:删除错别字

最佳答案

您可以使用for循环或Stream管道(如果可以使用Java 8)进行此操作:

if (Stream.of(varIn).anyMatch(s->in.equalsIgnoreCase(s)))


要么

if (Stream.of(varIn).anyMatch(in::equalsIgnoreCase))


这是假设您只希望将一个in变量与数组元素进行比较(看来您的in[1]in[2]可能是拼写错误)。

09-26 19:52