Java 将多个数组返回到main方法
我的程序假设取一个文本文件,读取前四个名称,创建一个1-4之间的随机数,然后根据随机数将名称分配给4个不同的团队。例如,如果数字是3,那么第一个名字将进入第3组,第二个名字将进入第4组,等等(重复这个过程直到没有更多的名字)。我相信我已经有了所有正确的代码,问题是我不知道如何返回我输入到方法中的数组中的所有名字。这是我的密码:Java 将多个数组返回到main方法,java,Java,我的程序假设取一个文本文件,读取前四个名称,创建一个1-4之间的随机数,然后根据随机数将名称分配给4个不同的团队。例如,如果数字是3,那么第一个名字将进入第3组,第二个名字将进入第4组,等等(重复这个过程直到没有更多的名字)。我相信我已经有了所有正确的代码,问题是我不知道如何返回我输入到方法中的数组中的所有名字。这是我的密码: public static void main(String args[]) throws IOException { BufferedReader girlFile =
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[];
}`
main方法已提供给我,因此无法更改。调用
loadTeams()
需要返回类型为int
的值。不是一个数组或多个数组。如果无法更改main方法,则loadTeams
应返回一个整数
// ...
int n;
n = loadTeams(team1,team2,team3,team4,girlFile);
// ...
您不必返回任何内容,在main()中创建的数组将通过引用传递给您的方法,您可以在那里填充它们,并且在执行您的方法后,如果
main
方法中的代码比您在此处发布的代码多,则这些数组中的值将保留。您必须说明变量n
是什么,以及如何使用它,否则请按照答案进行操作
main
方法无法更改
在你的主要方法中
int n;
n = loadTeams(team1,team2,team3,team4,girlFile);
girlFile.close();
teamFile.close();
} // End of Main Method
您没有无故使用返回值n
。因此,从方法loadTeams()
返回什么并不重要,只要它是int
此外,这里的loadTeams()
返回一个字符串[]
,该字符串不能被分配为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
方法,则此选项将成为解决方案。
LoadTeam
应返回int
而不是字符串[]