【发布时间】:2016-04-27 19:10:03
【问题描述】:
对于一项学校作业,我成功创建了一个存储食谱(名称、成分、说明)的程序。我现在需要添加一个购物清单功能,它将从我添加的食谱中获取成分并将它们存储在一个新的静态字符串数组中。
我被要求创建大小为 20 的成分字符串数组,并将 shoppingList 创建为大小为 40 的静态字符串数组:
private String[] ingredients = new String[20];
private static String[] shoppingList = new String[40];
我将两个数组的所有元素都初始化为一个空字符串。
我还在我的测试程序中硬编码了两个食谱,如下所示:
rcp1.setIngredients(0, "Butter");
rcp1.setIngredients(1, "Garlic");
rcp1.setIngredients(2, "Parsley");
rcp1.setIngredients(3, "Bread");
rcp1.setIngredients(4, "Cheese");
rcp2.setIngredients(0, "Biscuits");
rcp2.setIngredients(1, "Pepperoni");
rcp2.setIngredients(2, "Pizza sauce");
这就是我被难住的地方:
public void setIngredients(int loc, String ingredient) {
ingredients[loc] = ingredient;
for (int i=0; i<shoppingList.length; i++){
if (shoppingList[loc] == "") {
shoppingList = ingredients;
}
}
}
因为 rcp1 和 rcp2 的成分都使用成分位置 [0, 1, 2],尝试使用 [loc] 将成分添加到静态 shoppingList 会导致它覆盖第一个配方的那些位置。
我创建了 for 循环,因此它可以正确显示第一个配方的成分;但是,我不确定如何继续查找下一个空字符串的位置,以便列出第二个配方的成分。我在想我必须使用 else if 语句,然后想办法找到下一个空字符串在哪里,这样我就可以从那时开始添加下一个食谱的成分..?
有没有其他可能更简单的方法可以让我从 rcp2 中获取成分并将它们放置在 shoppingList 中 rcp1 的成分之后?
我想我一直在过度分析这个问题,但我还没有找到解决方案,所以如果有人能指出我正确的方向,我将不胜感激。谢谢!
【问题讨论】:
-
setIngredients()函数的目的是什么?里面的 for 循环是没用的 - 你不要在 body 中使用迭代变量i。 -
你在说什么让我觉得你只需要将两个食谱的成分连接到另一个数组
shoppingList,对吗?