如何让java程序将用户输入“t”理解为“true”,将“f”理解为“false”(boolean)?

时间:2017-10-26 11:15:53

标签: java boolean java.util.scanner

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

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

3 个答案:

答案 0 :(得分:0)

使用哪种方式并不重要,但下面的内容适用于您的示例。它只是不包括输入格式错误的情况

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

String parameterString2 = eingabe.next();
boolean parameter2 = command.equals("t");

答案 1 :(得分:0)

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

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 :(得分:-1)

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

或者你可以使用switch语句