簡體   English   中英

使用do-while循環將用戶輸入添加到ArrayList

[英]Adding user input to ArrayList using do-while loop

我正在嘗試使用do-while循環將用戶輸入添加到Arraylist中,但是我最終得到的列表僅包含重復輸入多次的最終項目。

public static ArrayList<Item> purchaseItems()
       {
        ArrayList<Item> toBuy = new ArrayList<Item>();

        String response;
        System.out.println("What would you like to purchase? (type \"done\" to end) ");   
        do {

             response = in.nextLine();
             if(!response.equals("done") ){

                    toBuy.add(new Item(response, randGen.nextInt(100)));
                    System.out.println(toBuy);
            }

        } while(!response.equals("done"));

        return toBuy;
    }

應該按照我的評論中所述工作。 如果尚未完成,請在您的Item類中實現toString()方法。 您應該按以下方式替換System.out.println:

    public static ArrayList<Item> purchaseItems()
           {
            ArrayList<Item> toBuy = new ArrayList<Item>();

            String response;
            System.out.println("What would you like to purchase? (type \"done\" to end) ");   
            do {

                 response = in.nextLine();
                 if(!response.equals("done") ){

                        toBuy.add(new Item(response, randGen.nextInt(100)));
                }

            } while(!response.equals("done"));

               for (Item item : toBuy){
               System.out.println(item);
                }
            return toBuy;
        }

如果這樣做沒有幫助,請共享更多代碼。

這是完整的示例

package stackoverflow;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class Q53837506 {

    public static void main(String[] args) {
        ArrayList<Item> purchaseItems = purchaseItems();
        System.out.println(purchaseItems);

    }

    public static class Item {
        String r;
        int v;

        public Item(String r, int v) {
            super();
            this.r = r;
            this.v = v;
        }

        @Override
        public String toString() {
            return "Item [r=" + r + ", v=" + v + "]";
        }
    }

    static final Random randGen = new Random();

    public static ArrayList<Item> purchaseItems() {
        ArrayList<Item> toBuy = new ArrayList<Item>();

        String response;
        System.out.println("What would you like to purchase? (type \"done\" to end) ");
        Scanner in = new Scanner(System.in);
        do {

            response = in.nextLine();
            if (!response.equals("done")) {

                toBuy.add(new Item(response, randGen.nextInt(100)));
                System.out.println(toBuy);
            }
        } while (!response.equals("done"));

        return toBuy;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM