很抱歉打扰你们,但我似乎无法在这里找到问题。还在学习所以任何输入都会很棒。
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);
}
}
现在的主要问题是,当我运行它时,它将无法正常工作。我已经找了,我看到的是我需要测试布尔值。这是真的?其他一切正常,但布尔选项不允许我输出。
答案 0 :(得分:3)
Scanner nextBoolean()
方法使用这样的布尔模式来验证输入:
private static final String BOOLEAN_PATTERN = "true|false";
因此您需要输入true
或false
- 是或否将不被接受。
这有点违反直觉,因为java Boolean类有一个名为parseBoolean()
的方法,它为匹配“true”(不区分大小写)和布尔true
的任何字符串返回布尔false
其他任何事情。
但正如您所发现的那样,Scanner
类的行为略有不同。
如果您想接受yes
,no
,甚至y
,n
等,您应该使用Scanner.nextString()
并自行处理逻辑
答案 1 :(得分:0)
到目前为止,您的代码正在运行。 问题是“你结婚了吗?”只能用“真实”或“假”来回答。
答案 2 :(得分:0)
当你达到“你结婚了吗?”然后传递真或假,不要回答是或否