如何停止接受用户输入并打印出arraylist

时间:2018-11-07 19:00:38

标签: java loops arraylist user-input

我正在尝试创建一个程序,该程序将用户输入存储到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);
            }
        }
    }
}

3 个答案:

答案 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