Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从用户输入读取和检查多个字符串_Java_String_Input_Compare - Fatal编程技术网

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

Java 从用户输入读取和检查多个字符串,java,string,input,compare,Java,String,Input,Compare,用户必须输入一个等于“红色”、“绿色”或“蓝色”的字符串。我有它的工作只是'红色',但我如何让它检查多个字符串 谢谢大家!!它现在正在工作。对不起,我对Java有点陌生。我以前试过另一个if,但现在 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? ");

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

谢谢大家!!它现在正在工作。对不起,我对Java有点陌生。我以前试过另一个if,但现在

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);
        }
在else语句中,它工作得非常完美

考虑:

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

考虑:

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


你要做的是检查卡片是否是红色的,如果不是红色的输入是错误的,但是你要做的是检查每种颜色,如果所有输入都不匹配字符串,你就打印错误

那就这样吧

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

你要做的是检查卡片是否是红色的,如果不是红色的输入是错误的,但是你要做的是检查每种颜色,如果所有输入都不匹配字符串,你就打印错误

那就这样吧

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

创建一个要检查的
String
s数组,然后对其进行迭代,如下所示:

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

创建一个要检查的
String
s数组,然后对其进行迭代,如下所示:

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

如果您想让代码更简洁,这里有一行代码:

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);
}

如果您想让代码更简洁,这里有一行代码:

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);
}

谢谢,但我已经试过把它放在一个“如果”的声明中。哦,所以把错误放在一个else中,不要包含一个'!'成功了!非常感谢好心的先生!谢谢,但我已经试过把它放在一个“如果”的声明中。哦,所以把错误放在一个else中,不要包含一个'!'成功了!非常感谢好心的先生!不管输入是什么,这实际上都会打印错误,因为任何字符串都不能同时为红色、绿色和蓝色。@Njol您完全正确。我犯了愚蠢的错误。刚刚更正。不管输入是什么,这实际上都会打印错误,因为没有字符串可以同时为红色、绿色和蓝色。@Njol您完全正确。我犯了愚蠢的错误。刚刚纠正了它。