[英]How do I empty the buffer inside the loop each iteration in Java?
我正在寫一個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();
}
但是,當我運行它時,輸出以下內容:
名:姓:
並且只會讀取一個字符串的名字和姓氏。
這僅發生在第一次迭代中,隨后的迭代都很好。 我認為這可能與清空緩沖區有關,但是為什么它僅在第一次發生?
我想知道您是否在調用此代碼塊之前沒有正確處理行尾字符。 您是否使用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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.