gpt4 book ai didi

java - 如何在 Java 中每次迭代时清空循环内的缓冲区?

转载 作者:行者123 更新时间:2023-12-01 15:55:52 25 4
gpt4 key购买 nike

我正在编写一个 for 循环来填充数组。这是我的代码:

for (int i = 0; i < students.length; i++)
{
System.out.println("Student " + (i+1));

System.out.print("First Name: ");
students[i][0] = keyboard.nextLine();

System.out.print("Last Name: ");
students[i][1] = keyboard.nextLine();

System.out.print("Date of Birth (MM/DD/YYYY): ");
students[i][2] = keyboard.nextLine();

}

但是当我运行时它输出以下内容:

First Name: Last Name:

并且只会读取名字和姓氏的一个字符串。

这只发生在第一次迭代中,接下来的迭代都很好。我认为这可能与清空缓冲区有关,但为什么它只发生在第一次?

最佳答案

我想知道在调用此代码块之前是否有未正确处理的行尾字符。您是否使用 Scanner 的其他方法,例如 nextInt()、nextDouble() 或 next()?如果是这样,那么您可能需要在这些方法调用之后调用 nextLine() 以吞下行尾标记。例如

int myInt = keyboard.nextInt();
keyboard.nextLine(); // call this to swallow end of line character

double myDouble = keyboard.nextDouble();
keyboard.nextLine();

关于java - 如何在 Java 中每次迭代时清空循环内的缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5062126/

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