gpt4 book ai didi

java - 将数组中的对象元素添加到字符串数组中

转载 作者:行者123 更新时间:2023-12-01 04:51:47 24 4
gpt4 key购买 nike

我有一个方法,假设遍历 2 个对象数组,第一个是大小为 50 的菜单,其中包含食谱,最多可容纳 10 个称为成分的元素,每个元素最多可容纳 3 个元素,但我只是寻找他们的名字!我想获取食谱中这些成分元素的匹配名称,并将它们添加到我的字符串数组中,然后返回它,这是我的代码...

public class Recipe implements Cloneable
{

String Name;

final int INGREDIENT_ARRAY_MAX = 10;

Ingredient Ingredients[] = new Ingredient[INGREDIENT_ARRAY_MAX];

public class RecipeBook
{

final static int MENU_ARRAY_MAX = 50;

static Recipe Menu[] = new Recipe[MENU_ARRAY_MAX];

public static String[] getRecipesByIngredient(String ingredientName)
{

String[] targetRecipes = new String[MENU_ARRAY_MAX];

int counter = 0;

for (int j = 0; j < Menu.length; j++)
{

if (Menu[j] == null)
{

break;

}

else
{

for (int k = 0; k < Menu[j].Ingredients.length; k++)
{

System.out.println(Menu[j].Ingredients[k]);

if (Menu[j].Ingredients[k].getName().equals(ingredientName))
{

targetRecipes[counter] = Menu[j].getName();
counter++;

}
}
}
}

return targetRecipes;

}
}
}

现在我知道它不起作用以及为什么,但我不确定解决方案。目前我只有 3 个食谱和每个食谱 3 个成分!上面的内容仅供引用,这些是RecipeBook(菜单)和Recipes(食材)的对象数组。

现在,当运行此代码时,我会遇到 NullPointerException,因为尝试针对字符串测试空值,但是我如何才能使其检查食谱,如果没有找到任何内容,它会移至菜单中的下一个食谱,如果确实如此,它只是添加它,但继续检查直到完成。我尝试添加“if”语句来检查空值而不是空值,但它变得很复杂,并且仍然无法让我的程序返回检查数组的其余部分。我知道第一个“如果”可以保留,因为如果我在菜单中检查的位置为空,则其余部分也必须为空,因此没有必要继续下去。但是我如何检查成分数组,找到一些东西,添加它,然后返回到菜单中筛选包含该成分的食谱?是否可以在内循环中添加一个 if 来检查是否为 null,如果是,则返回外循环?

最佳答案

更新 if 条件如下

第一个 if 条件:

if (Menu[j] == null || Menu[j].Ingredients == null || Menu[j].Ingredients.length ==0)

第二个 if 条件:

if (Menu[j].Ingredients[k] != null &&做什么成分Name.equal(Menu[j].Ingredients[k].getName()))如果有任何问题,请告诉我。

关于java - 将数组中的对象元素添加到字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14840481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com