如何制作一个 java 程序来理解用户输入"t" "true","f"理解为"false"(布尔值)?



我必须编写一个程序,它正在使用布尔运算符。该程序应该做的第一件事是通过"命令:"向用户请求运算符。用户只能输入"&&"、"||"、"!"和"退出"。退出只是关闭程序。它做的下一件事是要求用户输入一个布尔变量,但这是我的问题:该程序在输入"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();  
   }
}

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

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());

你用哪种方式做并不重要,但下面应该适用于你的示例。它只是不涵盖输入格式错误的情况

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

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

否则,您可以使用 switch 语句

最新更新