如何在Java中创建ax = y或z语句

and*_*and -1 java if-statement

在我的程序中,我有一个名为yesOrNo的String,它是一个键盘输入.我创建了一个if语句来测试yesOrNo是否为以下之一:"Y","y","Yes","yes"使用|| 运营商.

我收到了错误消息:运算符|| 未定义参数类型java.lang.String,java.lang.String.做这样的事情的正确方法是什么?谢谢.

    Scanner keyboard = new Scanner(System.in);
    String yesOrNo = keyboard.nextLine();
    System.out.println(yesOrNo + "?" );

    if (yesOrNo.equals("Y" || "y" || "Yes || "yes")){
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 8

我能想到的最短的是:

if (yesOrNo.equalsIgnoreCase("Y") || yesOrNo.equalsIgnoreCase("Yes"))
Run Code Online (Sandbox Code Playgroud)


chr*_*her 6

您的语法无效.它需要有单独的条款:

if(yesOrNo.equals("Y") || yesOrNo.equals("y")...)
Run Code Online (Sandbox Code Playgroud)

如果你使用正则表达式会更清洁:

if(yesOrNo.matches("Y|y|Yes|yes")) { 
    // Code.
}
Run Code Online (Sandbox Code Playgroud)

额外阅读

  • 您应该查看String Docs.他们详述了各种有用的东西.

  • 阅读Regex.它使复杂的String比较变得非常简单.

  • 最后,查看不同的Operators,看看你能用正确的语法形成什么样的逻辑语句.