【问题标题】:How can I make a java program to understand the user-input "t" as "true" and "f" as "false"(boolean)?如何使 java 程序将用户输入“t”理解为“true”,将“f”理解为“false”(布尔值)?
【发布时间】:2017-10-26 11:15:53
【问题描述】:

我必须编写一个使用布尔运算符的程序。该程序应该做的第一件事是通过“命令:”向用户询问操作员。用户只能输入“&&”、“||”、“!”和“退出”。退出只是关闭程序。它要做的下一件事是向用户询问一个布尔变量,但这是我的问题:程序在输入“true”或“false”时工作得很好,但我得到的任务说,用户只能使用“t”代表“f”作为输入。所以这是我的问题:我怎样才能让程序将“t”理解为“真”和“f”理解为“假”?(顺便说一句,如果用户输入“!”程序只是输出第一个的否定参数)

    public static void main(String[] args) {

 Scanner eingabe = new Scanner(System.in);
    System.out.println("Command: ");
    String command = eingabe.nextLine();

    if(command.equals("quit")) {
        System.exit(0);

    }
    System.out.println("Parameter 1:");
    boolean parameter1=eingabe.nextBoolean();
    if(command.equals("!")) {
        System.out.println(!parameter1);
        System.exit(0);
    }
    System.out.println("Parameter 2:");
    boolean parameter2=eingabe.nextBoolean();
    if(command.equals("&&")) {
        System.out.println(parameter1&&parameter2);
    }else if(command.equals("||")) {
        System.out.println(parameter1||parameter2);
    }
eingabe.close();  
   }
}

【问题讨论】:

  • 请求一个字符串,并检查它是否等于“t”或“f”,就像你正在使用你的命令一样。

标签: java boolean java.util.scanner


【解决方案1】:

最简单的方法是编写一个小方法,例如:

boolean customParseBoolean(String input) {
  if ("t".equals(input)) {
    return true;
  } else if ("f".equals(input)) {
    return false;
  }
  // You don't have to throw an exception on invalid input; just an example.
  throw new IllegalArgumentException("Invalid input: " + input);
}

然后调用这个类似的东西:

boolean parameter1 = customParseBoolean(eingabe.nextLin());

【讨论】:

    【解决方案2】:

    无论您采用哪种方式都没有关系,但下面的示例应该适用于您的示例。它只是不涵盖输入格式错误的情况

    String parameterString1 = eingabe.next();
    boolean parameter1 = !command.equals("f");
    
    String parameterString2 = eingabe.next();
    boolean parameter2 = command.equals("t");
    

    【讨论】:

      【解决方案3】:

      您始终可以在 if() 条件下交叉验证用户输入。默认情况下创建一个布尔值 false,如果用户键入 t 将该布尔值设为 true,反之亦然。

      否则你可以使用 switch 语句

      【讨论】:

        猜你喜欢
        • 2021-01-18
        • 1970-01-01
        • 2018-06-09
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 2015-11-18
        • 2020-06-02
        相关资源
        最近更新 更多