我有两个类,一个运行Main方法的类有以下for
循环:
for (int b = startRecipe; b <= endRecipe; b++)
{
Rec = fileScan.nextLine() + "\n";
}
System.out.println(theRecipe.addRecipeStep(Rec));
在我的其他课程中,我有以下循环:
public String[] addRecipeStep(String Rec ){
for (int a = 0; a < maxNumOfSteps; a++)
recipeSteps[a] = Rec;
return recipeSteps;
}
可以跨两个类访问 int maxNumOfSteps
。我的第一个问题是,我想循环第一个循环,对于每个Rec
值,我想在第二个循环中将它添加到我的recipeSteps
数组中。现在,第二个循环只添加Rec
所需的最后一个值,这是可以理解的(并且数组在所有索引中包含相同的内容)。如果我执行Rec +=
并将每个Rec
值添加到数组的1个索引(一切都显示出来),那么它就违反了程序要求。理想情况下,我应该在第二个数组中拥有尽可能多的索引,因为有Rec
个值。
问题#2是,当我从addRecipeStep(param)
课程中调用main
时,会打印出“垃圾”。我试图使用toString()
,但尚未取得成功。欢迎提出所有建议
谢谢!
答案 0 :(得分:0)
由于addRecpieStep在一个类中,而您的第一个循环在另一个类中,因此您需要对包含addRecepieStep的类进行引用。然后只需在循环中调用该方法,并使用rec。
的值在addRecpieStep中你需要改变一下。之前您使用rec的值覆盖了所有元素,但您只想将其添加到列表的末尾。所以你想循环addRecpieStep,直到你找到一个空值,并将元素添加到该位置:
for (int b = startRecipe; b <= endRecipe; b++)
{
rec = fileScan.nextLine() + "\n";
refrenceToYourClassContainingAddRecipeStep.addRecipeStep(rec); //add this line
}
public String[] addRecipeStep(String rec ){
for (int a = 0; a < maxNumOfSteps; a++){
if(receipeStep[a]==null // loop until you reached a empty spot in your string arrray
recipeSteps[a] = rec; // add rec to your empty spot
break;
}
return recipeSteps;
}
要解释,当你这样做时(就像你在你的例子中所做的那样):
public String[] addRecipeStep(String Rec ){
for (int a = 0; a < maxNumOfSteps; a++)
recipeSteps[a] = Rec;
return recipeSteps;
}
用rec值覆盖整个数组,因为它将循环通过数组,并将rec添加到每个不是你想要的位置
关于阵列的打印,我将由您完成。但是,您需要循环遍历数组,并在每个元素上调用println。因此,编写一个方法,将数组作为参数,循环通过数组并在每个循环中调用println。祝你好运