Java 布尔输出阻塞了整个过程

Java 布尔输出阻塞了整个过程,java,Java,很抱歉打扰大家,但我似乎找不到问题所在。仍在学习,因此任何输入都将是伟大的 import java.util.Scanner; public class AllAboutMe { public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); String name; Boolean married; in

很抱歉打扰大家,但我似乎找不到问题所在。仍在学习,因此任何输入都将是伟大的

import java.util.Scanner;


public class AllAboutMe {

    public static void main(String[] args)
    {

        Scanner keyboard = new Scanner(System.in);
        String name;
        Boolean married;
        int age, height;

        System.out.print("What is your name? ");
        name = keyboard.nextLine();

        System.out.println("What is your age?");
        age = keyboard.nextInt();

        System.out.println("What is your height? ");
        height = keyboard.nextInt();

        System.out.println("Are you married?");
        married = keyboard.nextBoolean();

        char aChar = name.charAt(0);

        System.out.println("Your name is " + name);
        System.out.println("your initial is " + aChar);
        System.out.println("Your marital status is " + married);
        System.out.println("Your height is " + height);
        System.out.println("Your age is " + age);
    }

}

现在主要的问题是,当我运行这个程序时,它将不起作用。我已经找过了,我看到的只是我需要测试布尔值。这是真的吗?其他一切正常,但布尔选项不允许输出

Scanner
nextBoolean()
方法使用如下布尔模式来验证输入:

private static final String BOOLEAN_PATTERN = "true|false";
因此,您需要输入
true
false
——是或否将不被接受

这有点违反直觉,因为java Boolean类有一个名为
parseBoolean()
的方法,它对任何匹配“true”(不区分大小写)的字符串返回Boolean
true
,对任何其他字符串返回Boolean
false

但是,正如您所发现的,
Scanner
类的行为有点不同


如果您想接受
yes
no
,甚至
y
n
等,您应该使用
Scanner.nextString()
自己处理逻辑。

您的代码到目前为止仍在工作。
“你结婚了吗?”这个问题只能用“真”或“假”来回答

当你问到“你结婚了吗?”时,请通过“是”或“否”中的“是”或“否”你能更详细地解释你的问题是什么吗?从你的描述中我不明白。这个代码没有任何问题。能够在我的系统上成功运行。是否确保键入
true
false
而不是
yes
no
?布尔输出不会阻止整个过程。你的问题毫无意义。看起来他正在键入
yes
并获得
java.util.InputMismatchException
-OP,你能确认吗?谢谢你在以后的工作中做得非常完美,请在发布之前查看现有答案-你的答案在几乎相同的其他答案几分钟后出现。