将多个数组返回到main方法

时间:2013-09-27 07:59:33

标签: java

我的程序假设采用文本文件,读取前四个名称,在1-4之间创建一个随机数,然后根据随机数将名称分配给4个不同的团队。例如,如果数字是3,那么第一个名称将转到第3组,第二个名称转到第4组等等(重复过程,直到没有更多名称)我相信我拥有所有正确的代码,问题是我无法弄清楚如何返回我放入方法的数组中的所有名称。这是我的代码:

public static void main(String args[]) throws IOException
{
BufferedReader girlFile = new BufferedReader(new FileReader("girls40.txt"));
PrintWriter teamFile = new PrintWriter(new FileWriter("xxxxxxx-teamlist.txt"));
String team1[] = new String[20];
String team2[] = new String[20];
String team3[] = new String[20];
String team4[] = new String[20];
int n;

n = loadTeams(team1,team2,team3,team4,girlFile);
girlFile.close();
teamFile.close();
}

public static String[] loadTeams(String team1[],String team2[],String team3[],String team[],BufferedReader girlFile)
{
int n;
int random;
String name1;
String name2;
String name3;
String name4;
while((name1=girlFile.readLine())!=null)
  {
    name2=girlFile.readLine();
    name3=girlFile.readLine();
    name4=girlFile.readLine();
    random = 1 + (int)(Math.random() * 4);
    if(random==1)
      {
        team1[n]=name1;
        team2[n]=name2;
        team3[n]=name3;
        team4[n]=name4;
      }
    if(random==2)
      {
        team1[n]=name4;
        team2[n]=name1;
        team3[n]=name2;
        team4[n]=name3;
      }
    if(random==3)
      {
        team1[n]=name3;
        team2[n]=name4;
        team3[n]=name1;
        team4[n]=name2;
      }
    if(random==4)
      {
        team1[n]=name2;
        team2[n]=name3;
        team3[n]=name4;
        team4[n]=name1;
      }
    n++;  
  }
return team1[],team2[],team3[],team4[];
  }`

主要方法是给我的,所以不能改变。

4 个答案:

答案 0 :(得分:1)

如果main方法中的代码多于您在此处发布的代码。您必须提及变量n是什么以及它是如何被使用的,否则请遵循答案。

main方法无法更改

在您的主要方法中,

int n;

n = loadTeams(team1,team2,team3,team4,girlFile);
girlFile.close();
teamFile.close();
} // End of Main Method

您没有使用返回值n。因此,只要它是loadTeams(),从方法int返回的内容无关紧要。

另外,此处loadTeams()返回String[]int n无法指定为loadTeams(),您必须将int的返回类型更改为public static int loadTeams(String team1[],String team2[],String team3[],String team[],BufferedReader girlFile) { /* ... */ return 0; // whatever, it isn't being used } 作为

main

如果您无法更改{{1}}方法,则可以使用此解决方案。

答案 1 :(得分:0)

loadTeams()的调用需要类型为int的返回值。不是数组或多个数组。如果您无法更改main方法,则loadTeams应返回一个整数。

// ...
int n;
n = loadTeams(team1,team2,team3,team4,girlFile);
// ...

答案 2 :(得分:0)

你不必返回任何东西,在main()中创建的数组将通过引用传递给你的方法,你可以在那里填充它们,并且在执行你的方法之后,值将保存在这些数组中

答案 3 :(得分:0)

  1. loadTeams 应返回 int ,而不是 String[] 。< / p>

  2. 无需返回数组。 loadTeams 方法中数组中所做的更改将在main方法中反映回数组。