【问题标题】:how to stop taking user inputs and print out arraylist如何停止接受用户输入并打印出arraylist
【发布时间】:2019-04-11 06:33:00
【问题描述】:
我正在尝试创建一个程序,该程序将用户输入存储到一个 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);
}
}
}
}
【问题讨论】:
标签:
java
loops
arraylist
user-input
【解决方案1】:
这里是错误的:
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;
}
【解决方案2】:
您可以使用 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;
}
}
}
}
【解决方案3】:
或者您可以使用 do-while 循环来代替:
public class GroceryArraylist{
public static void main(String[] args) {
ArrayList<String> Grocerylist = new ArrayList<>();
Scanner input = new Scanner(System.in);
System.out.print("Enter an item, enter \"end\" to stop ");
do {Grocerylist.add(input.next());}
while (!input.hasNext("end"));
System.out.println(Grocerylist);
System.exit(0);
}
}