我的程序假设采用文本文件,读取前四个名称,在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[];
}`
主要方法是给我的,所以不能改变。
答案 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)
loadTeams
应返回 int
,而不是 String[]
。< / p>
无需返回数组。 loadTeams
方法中数组中所做的更改将在main方法中反映回数组。