本文介紹了為什么我必須編寫兩次才能在數組列表中添加輸入?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
public static void main(String[] args) {
List<String> arrayList = new ArrayList<>();
Scanner input = new Scanner(System.in);
do {
System.out.println("Enter a product");
String product = input.nextLine();
arrayList.add(product);
}
while (!input.nextLine().equalsIgnoreCase("q"));
System.out.println("You wrote the following products
");
for (String naam : arrayList) {
System.out.println(naam);
}
}
我正在嘗試從用戶那里獲取一些輸入并將它們存儲到arraylist中。問題是我必須寫兩次項才能將項添加到列表中。我想不出為什么!
推薦答案
每次寫入readLine()
時,都會讀取一行。在此循環中,
do {
System.out.println("Enter a product");
String product = input.nextLine();
arrayList.add(product);
}
while (!input.nextLine().equalsIgnoreCase("q"));
出現兩次readLine()
,因此每次迭代都讀取兩行。第一行始終添加到列表中,并且不與q
核對;第二行永遠不會添加到列表中,并且始終與q
核對。
您應該只執行一次nextLine
:
while (true) {
System.out.println("Enter a product");
String product = input.nextLine(); // only this one time!
if (!product.equalsIgnoreCase("q")) {
arrayList.add(product);
} else {
break;
}
}
這篇關于為什么我必須編寫兩次才能在數組列表中添加輸入?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,