【问题标题】:Adding multiple objects with loop for java使用循环为java添加多个对象
【发布时间】:2021-11-12 12:35:57
【问题描述】:

我正在尝试学习 oop,但找不到解决问题的方法。在这种情况下,我想将多个食物对象插入到数组列表中。我期望的结果是,当我将例如 3 输入限制器时,它应该打印我之后输入的任何内容,而不是在索引 0 上创建某种额外的对象作为空白。

当前输出:

3
fried chicken
burger
[food: , food: fried chicken, food: burger]

Process finished with exit code 0

预期的输出应该是:

3
fried chicken
burger
sushi
[food: fried chicken , food: burger, food: sushi]

Process finished with exit code 0

这里是主要的:

package FoodRecommendation;

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

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ArrayList<food> arrayList = new ArrayList<>();

        int limiter = in.nextInt();
        for (int j = 0; j < limiter ; j++) {
            arrayList.add(new food(in.nextLine()));
        }
        System.out.println(arrayList);
    }
}

这是食物:

package FoodRecommendation;

public class food {
    private String food;

    public food(String food) {
        this.food = food;
    }

    public String getFood() {
        return food;
    }

    @Override
    public String toString() {
        return "food: " + this.food;
    }
}

我确实知道为什么会发生这种情况,这是因为当“(new food(in.nextLine()))”被插入到循环中时,它总是在索引 0 上创建一个空白。但我就是不能找不到解决方法。我希望有人可以帮助我:D

【问题讨论】:

标签: java oop arraylist


【解决方案1】:

或者你可以这样做,像这样将限制器值解析为整数

int limiter = Integer.parseInt(in.nextLine());

输出

3

炸鸡

汉堡

寿司

[食物:炸鸡,食物:汉堡,食物:寿司]

【讨论】:

    【解决方案2】:

    试着放

    in.nextLine();
    

    之后

    int limiter = in.nextInt();
    

    在您的代码中。您的代码中的第一个只是将 "" 作为输入。

    【讨论】:

    • 好的,谢谢。出于某种原因,我怀疑这一点,但我输入了.nextLine();进入非常愚蠢的循环
    猜你喜欢
    • 2015-03-16
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2020-12-02
    相关资源
    最近更新 更多