簡體   English   中英

如何使用數組在Java中的一行中設置多個選擇條件?

[英]How to use an array to set multiple selection critieria in one line in java?

更准確地說,是否可以做這樣的事情:

  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]可能是一個錯字)。

在Java 8之前的版本中:

Set<String> varIn = new HashSet<>(Arrays.asList("1", "2", "3"));
in = readLine();
if(in != null && varIn.contains(in.toLowerCase())) ... //maybe, toUpperCase

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM