gpt4 book ai didi

java - 日历输入忽略下一个输入行

转载 作者:行者123 更新时间:2023-12-01 11:58:48 24 4
gpt4 key购买 nike

我无法理解这个问题。

下面的代码编译并运行良好,除了一个问题 - 在出生日期(日、月、年部分)的 inputReg 行之后,代码的下一部分将是由于某种原因跳过。

在此代码中,程序在创建日历后立即忽略tel = inputReg.nextLine();

我对出生日期部分的放置进行了愚弄,发现下一个 inputReg.nextLine() 部分如果放置在日期之后,则始终会被跳过出生部分。

运行这部分代码:

  Scanner inputReg = new Scanner(System.in);

//initialization of attributes
String IC = "";
String name = "";
String tel = "";

int day = 0;
int month = 0;
int year = 0;
//for date

System.out.print("Enter IC number: ");
IC = inputReg.nextLine();

Calendar dob = new GregorianCalendar(year, month, day);

System.out.print("Enter name: ");
name = inputReg.nextLine();

System.out.println("Enter Date of Birth (DD/MM/YYYY ): ");
day = inputReg.nextInt();
month = inputReg.nextInt();
year = inputReg.nextInt();

System.out.print("Enter telephone number: ");
tel = inputReg.nextLine();

Customer c = new Customer(IC, name, dob, tel);
customerList.add(c);

System.out.println("Customer " + c.getName() + " registered successfuly.");
System.out.println(tel);

给我这个输出:

Enter IC number: XX11
Enter name: Bob
Enter Date of Birth (DD/MM/YYYY ):
10
10
2000
Enter telephone number: Customer Bob registered successfuly.

//ends

我知道我可以简单地将出生日期区域放在最底部,但我对此不满意。

我的问题是:是什么导致 inputReg.nextLine() 部分总是被跳过?

顺便说一句,我只在让代码与日历交互时遇到这个问题,所以也许有一些我没有得到的新东西。

最佳答案

问题是您的 nextInt 方法无法读取您为 year = inputReg.nextInt() 输入值的换行符。您可以通过两种方式解决它。

解决方案1

添加 nextLine 方法来捕获'\n'

year = inputReg.nextInt();
inputReg.nextLine();

解决方案2

仅使用nextLine()读取输入

year = Integer.parseInt(inputReg.nextLine());

关于java - 日历输入忽略下一个输入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28137125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com