从用户输入中读取和检查多个字符串

时间:2014-01-25 22:11:30

标签: java string input compare

Scanner in = new Scanner(System.in);   

      String err = "\nThat's not a card color!\n\n";

 System.out.print("Is your card red, green or blue? ");
    String card = in.nextLine();
        if ((!"red".equals(card))){
            System.out.print(err);
             System.exit(0);
        }

用户必须输入一个等于“红色”,“绿色”或“蓝色”的字符串。我让它工作正常只是'红色',但我如何检查MULTIPLE字符串?

谢谢大家!它现在正在运作。对不起,我是Java的新手。如果之前我尝试过其他但是现在

    System.out.print(err);
    System.exit(0);

在其他声明中它完美运作!

4 个答案:

答案 0 :(得分:3)

创建一个你要检查的String数组,然后迭代它,如下所示:

boolean foundColor = false;
for(String color:new String[]{"red","green","blue"}){
    if (color.equals(card)){
        foundColor = true;
    }
}
if(!foundColor){
    System.out.print(err);
    System.exit(0);
}

答案 1 :(得分:1)

如果你想让你的代码更简洁,这是一个单行:

if (!Arrays.asList("red", "green", "blue").contains(card)) {
    System.out.print(err);
    System.exit(0);
}

答案 2 :(得分:0)

考虑一下:

  

如果是“红色”,否则如果“绿色”则为“蓝色”,否则打印“错误!”

答案 3 :(得分:0)

你要做的是检查卡是否为红色,如果输入错误不是红色,但你要做的是检查每种颜色,如果所有输入都没有匹配,则打印错误。

所以就像

一样
if(card.equals("red")){
 ... do something
}
else if( card.equals("blue"){
 ... do something else
}
else
  error