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”(不区分大小写)的字符串返回Booleantrue
,对任何其他字符串返回Booleanfalse
但是,正如您所发现的,Scanner
类的行为有点不同
如果您想接受
yes
,no
,甚至y
,n
等,您应该使用Scanner.nextString()
自己处理逻辑。您的代码到目前为止仍在工作。
“你结婚了吗?”这个问题只能用“真”或“假”来回答 当你问到“你结婚了吗?”时,请通过“是”或“否”中的“是”或“否”你能更详细地解释你的问题是什么吗?从你的描述中我不明白。这个代码没有任何问题。能够在我的系统上成功运行。是否确保键入
true
或false
而不是yes
或no
?布尔输出不会阻止整个过程。你的问题毫无意义。看起来他正在键入yes
并获得java.util.InputMismatchException
-OP,你能确认吗?谢谢你在以后的工作中做得非常完美,请在发布之前查看现有答案-你的答案在几乎相同的其他答案几分钟后出现。