Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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_If Statement_Boolean Operations - Fatal编程技术网

如何检查用户输入的字符串是否是Java中的某个字母?

如何检查用户输入的字符串是否是Java中的某个字母?,java,if-statement,boolean-operations,Java,If Statement,Boolean Operations,我知道这是一个重复的问题,但我的问题更多地涉及布尔运算符:我正在构建一个简单的石头、布、剪刀游戏。每个玩家必须输入“R”、“P”或“S” 这个简单的if语句 if (!p1Input.equals("R") || !p1Input.equals("P") || !p1Input.equals("S")) { System.out.println("Player one, not a valid input.") } 如果字符串不是这三个字母,则应运行print语句。但是,即使字符串等于

我知道这是一个重复的问题,但我的问题更多地涉及布尔运算符:我正在构建一个简单的石头、布、剪刀游戏。每个玩家必须输入“R”、“P”或“S”

这个简单的if语句

if (!p1Input.equals("R") || !p1Input.equals("P") || !p1Input.equals("S")) {
    System.out.println("Player one, not a valid input.")
}
如果字符串不是这三个字母,则应运行print语句。但是,即使字符串等于其中一个字母,它仍会打印出无效的输入

或者,我也可以这样做

if (p1Input.equals("R") || p1Input.equals("P") || p1Input.equals("S"))
这是可行的,但我需要将玩家2的输入与

if (p1Input.equals("R") || p1Input.equals("P") || p1Input.equals("S") && p2Input.equals("R") || p2Input.equals("P") || p2Input.equals("S"))

但是,只有当两个播放器输入都不是R、S或p时,该语句才打印无效。我不确定要使用哪些运算符&&或| |以及在哪里。我最好使用“不等于条件”

这是布尔逻辑的问题。基本上,在检查输入时,您对程序说:“如果输入与RP或S不同,则无效”。假设用户输入“P”。“P”不同于“R”,不同于“S”,所以程序会认为它是无效的。相反,用“或”运算符(
|
)替换“和”运算符(
&&
),如下所示:

if (!p1Input.equals("R") && !p1Input.equals("P") && !p1Input.equals("S")) {
    System.out.println("Player one, not a valid input.")
}

现在,您告诉您的程序,当输入与“R”“p”“S”同时不同时,输入无效(因此它不能是这些字母中的任何一个)。

这是您的布尔逻辑的问题。基本上,在检查输入时,您对程序说:“如果输入与RP或S不同,则无效”。假设用户输入“P”。“P”不同于“R”,不同于“S”,所以程序会认为它是无效的。相反,用“或”运算符(
|
)替换“和”运算符(
&&
),如下所示:

if (!p1Input.equals("R") && !p1Input.equals("P") && !p1Input.equals("S")) {
    System.out.println("Player one, not a valid input.")
}

现在,您告诉您的程序,当输入与“R”“p”“S”(因此不能是任何这些字母)同时不同时,该输入是无效的。

或者,您可以尝试使用regex作为解决方案:
如果(!p1Input.matches(“P | R | S”))
:当输入无效时,即除
P、R或S之外,将满足此条件。同样,您也可以为player2合并逻辑。

希望这能有所帮助。

或者,您可以使用regex作为尝试解决方案:
如果(!p1Input.matches(“P | R | S”))
:当输入无效时,即除
P、R或S之外,将满足此条件。同样,您也可以为player2合并逻辑。
希望这有帮助。

如果(!p1Input.equals(“R”)和&!p1Input.equals(“p”)和&!p1Input.equals(“S”)
,那么如果输入不是
R
,也不是
p
,并且不是
S
,那么打印无效的
如果(!p1Input.equals(“R”)和!p1Input.equals(“p”)和
,那么,如果输入不是
R
,也不是
P
,也不是
S
,则打印无效