Java - 循环使用1类&在另一个数组中添加元素

时间:2012-04-03 07:05:01

标签: java

我有两个类,一个运行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(),但尚未取得成功。欢迎提出所有建议 谢谢!

1 个答案:

答案 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。祝你好运