如何在Java中生成x=y或z语句

如何在Java中生成x=y或z语句,java,if-statement,Java,If Statement,在我的程序中,我有一个名为yesOrNo的字符串,它是一个键盘输入。我创建了一个if语句来测试yesOrNo是否为以下之一:“Y”、“Y”、“Yes”, 使用| |运算符选择“是” 我收到错误消息:参数类型java.lang.String、java.lang.String的运算符| |未定义。这样做的正确方式是什么?谢谢 Scanner keyboard = new Scanner(System.in); String yesOrNo = keyboard.nextLine();

在我的程序中,我有一个名为yesOrNo的字符串,它是一个键盘输入。我创建了一个if语句来测试yesOrNo是否为以下之一:“Y”、“Y”、“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")){
像这样:

if (yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")){
    //...
}
尝试:


我能想到的最短的是:

if (yesOrNo.equalsIgnoreCase("Y") || yesOrNo.equalsIgnoreCase("Yes"))

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

if(yesOrNo.equals("Y") || yesOrNo.equals("y")...)
或者,如果使用正则表达式,则会更干净:

if(yesOrNo.matches("Y|y|Yes|yes")) { 
    // Code.
}
额外阅读

  • 你应该看看地图。他们详述了各种有用的东西

  • 仔细阅读。它使复杂的
    字符串
    比较非常简单

  • 最后,看看不同的语法,看看您可以用正确的语法形成什么样的逻辑语句

两种方式:

  • 使用
    等于

    if (yesOrNo.equals("Y") ||
        yesOrNo.equals("y") ||
        yesOrNo.equals("Yes") ||
        yesOrNo.equals("yes")) {
        //...
    }
    
  • 使用regexp(比多次使用| |更短):


  • 或者,您可以创建一个可接受答案的列表,并检查答案是否在该列表中

    List<String> kindOfYes = Arrays.asList("yes", "y", "okay", "righto");
    if (kindOfYes.contains(yesOrNo.toLowerCase())) { ...
    
    List kindOfYes=Arrays.asList(“yes”、“y”、“ok”、“righto”);
    如果(kindOfYes.contains(yesOrNo.toLowerCase()){。。。
    
    下一个代码是什么

    String yesOrNo = keyboard.nextLine();
    if (yesOrNo.toLowerCase().charAt(0) == 'y') {
        //  
    }
    

    注意:你认为有更快的方法吗?我认为没有。

    你的程序语法是错误的

    这是正确的:

    Scanner keyboard = new Scanner(System.in);
        String yesOrNo = keyboard.nextLine();
        System.out.println(yesOrNo + "?" );
    
        if(yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")) {
    

    啊!我想知道你是否可以做一些可以忽略大写的事情。谢谢。嘿@LuiggiMendoza你真的认为用户会写这样的东西吗?顺便问一下,向秘鲁致意。我期待用户的任何东西,请看。谢谢问候:),向墨西哥人民致意。请提供更详细的解释,说明这是如何工作的呃,不仅仅是发布代码。谢谢。我会查看这些链接。
    List<String> kindOfYes = Arrays.asList("yes", "y", "okay", "righto");
    if (kindOfYes.contains(yesOrNo.toLowerCase())) { ...
    
    String yesOrNo = keyboard.nextLine();
    if (yesOrNo.toLowerCase().charAt(0) == 'y') {
        //  
    }
    
    Scanner keyboard = new Scanner(System.in);
        String yesOrNo = keyboard.nextLine();
        System.out.println(yesOrNo + "?" );
    
        if(yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")) {