【问题标题】: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);
          }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-06-17
          • 2019-03-20
          • 1970-01-01
          • 2020-11-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多