为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐8265434 2022-06-15 09:32:23
我知道这是一个重复的问题,但我的问题更多地涉及布尔运算符:我正在构建一个简单的石头、纸、剪刀游戏。每个玩家必须输入“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,则该语句仅打印无效。我不确定哪个运算符 && 或 || 使用和在哪里。最好我想使用“不等于条件”
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

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


if (!p1Input.equals("R") && !p1Input.equals("P") && !p1Input.equals("S")) {

    System.out.println("Player one, not a valid input.")

}

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


查看完整回答
反对 回复 2022-06-15
?
烙印99

TA贡献1829条经验 获得超13个赞

或者,您可以尝试使用正则表达式 as 的解决方案::
if(!p1Input.matches("P|R|S"))当输入无效时,将满足此条件,即P, R or S. 同样,您也可以为 player2 合并逻辑。
希望这可以帮助。

查看完整回答
反对 回复 2022-06-15
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号