0

我的程序假设获取一个文本文件,读取前四个名称,创建一个 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

4 回答 4

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[]不能被分配的 be int n,你必须将返回类型更改loadTeams()intas

public static int loadTeams(String team1[],String team2[],String team3[],String team[],BufferedReader girlFile) {
/* 
   ...
 */
      return 0; // whatever, it isn't being used
}

如果您无法更改main方法,这是解决方案。

于 2013-09-27T08:32:29.817 回答
0
  1. loadTeams应该返回一个而int不是String[]

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

于 2013-09-27T10:15:12.087 回答
0

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

于 2013-09-27T08:13:36.893 回答
0

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

// ...
int n;
n = loadTeams(team1,team2,team3,team4,girlFile);
// ...
于 2013-09-27T08:03:53.720 回答