我正在尝试创建一个程序,该程序将用户输入存储到Arraylist中,并在用户输入特定字符串后将Arraylist打印出来。我当前的问题是我无法让用户输入停止并打印出来。我认为我目前拥有的基础很强,我看不出有什么问题。
import java.util.ArrayList;
import java.util.Scanner;
public class GroceryArraylist {
public static void main(String[] args) {
ArrayList<String> Grocerylist = new ArrayList<String>();
Scanner input = new Scanner(System.in);
System.out.print("Enter an item, enter end to stop ");
while (!input.equals("end")) {
Grocerylist.add(input.next());
if (Grocerylist.equals("end")){
for(String str:Grocerylist)
System.out.println(str);
}
}
}
}
答案 0 :(得分:0)
这是错误:
Grocerylist.equals(“ end”)
GroceryList的类型为ArrayList
,并且永远不会等于字符串"end"
。就像将苹果与橙子进行比较。
您可以尝试以下方法:
while (!input.equals("end")) {
String input = input.next();
Grocerylist.add(input);
if ("end".equals(input)){
for(String str:Grocerylist)
System.out.println(str);
}
break;
}
答案 1 :(得分:0)
您可以使用hasNext命令来避免在数组中包含“ end”。
public class GroceryArraylist {
public static void main(String[] args) {
ArrayList<String> Grocerylist = new ArrayList<String>();
Scanner input = new Scanner(System.in);
System.out.print("Enter an item, enter \"end\" to stop ");
while (input.hasNext()) {
Grocerylist.add(input.next());
if(input.hasNext("end")) {
System.out.println(Grocerylist);
break;
}
}
}
}
答案 2 :(得分:0)
或者您可以使用do-while循环代替:
K