如何检查用户输入的字符串是否是Java中的某个字母?
我知道这是一个重复的问题,但我的问题更多地涉及布尔运算符:我正在构建一个简单的石头、布、剪刀游戏。每个玩家必须输入“R”、“P”或“S” 这个简单的if语句如何检查用户输入的字符串是否是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语句。但是,即使字符串等于
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时,该语句才打印无效。我不确定要使用哪些运算符&&或| |以及在哪里。我最好使用“不等于条件”这是布尔逻辑的问题。基本上,在检查输入时,您对程序说:“如果输入与R或P或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”同时不同时,输入无效(因此它不能是这些字母中的任何一个)。这是您的布尔逻辑的问题。基本上,在检查输入时,您对程序说:“如果输入与R或P或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
,则打印无效