【发布时间】:2019-02-19 18:25:33
【问题描述】:
我正在尝试制作一个半动态的二维数组。所以它不使用arrayLists,也不是完全动态的,用户可以添加或删除元素,但程序必须能够询问用户团队的数量,然后询问每个团队的名称和每个团队的玩家人数,以及最后是每支球队中每个球员的名字。以下是我到目前为止所做的。代码运行但不会输出球队和球员。请尽快提供帮助:)
import java.util.Scanner;
public class semi_dynamic
{
public static void main(String[] args)
{
//Variable Declarations and Initializations
String sNumPlayers="";
int numPlayers=0, numTeams=0;
//String sTeams[]=new String[3];
String sPlayers[][] =new String[3][];//want an array of arrays but do not know how many teams players there are per team
Scanner scanner= new Scanner(System.in);
System.out.println("How many teams are there:");
numTeams=scanner.nextInt();
String sTeams[]=new String [numTeams];
for(int i=0;i<sTeams.length;i++)
{
System.out.println("\nPlease enter in team name #"+(i+1)+":");
sTeams[i]=scanner.next();
}//end for loop
for(int i=0;i<sPlayers.length;i++)
{
System.out.println("\nHow many players are there in team "+sTeams[i]+":");
sNumPlayers=scanner.next();
numPlayers=Integer.parseInt(sNumPlayers);
sPlayers[i]=new String[numPlayers];
for(int j=0;j<sPlayers[i].length;j++)
{
System.out.println("\nPlease enter in team player #"+(j+1)+" for team "+sTeams[i]+":");
sPlayers[i][j]=scanner.next();
}//end for loop
}//end for loop
System.out.println("\n=====================================\nTEAMS PLAYERS\n");
for(int i=0;i<sPlayers.length;i++)
{
System.out.print(sTeams[i]+"\t ");
for (int j=0;j<sPlayers.length;j++)
{
System.out.print(" "+sPlayers[i][j]+"\t ");
}//end for loop
System.out.println("\n----------------------------------------------------------------------------------------------------\n");
}//end for loop
}//end main
}//end class
【问题讨论】:
-
sPlayers = new String[numTeams][];一旦你知道有多少个团队;然后sPlayers[i] = new String[sNumPlayers];(正如你已经在做的那样)当你有球队#i的球员人数时。