我一直java.lang.ArrayIndexOutOfBoundsException
在 while 循环内的第二个 while 循环中得到一个。我缺少一个步骤吗?我正在从文件中读取我的信息。这个程序的整个目标是让我做以下事情:
- 提示用户输入文件路径。
- 提示用户知道应该创建多少个团队。
- 向用户询问每个团队的名称(如果您愿意,在内部您仍然可以使用团队的数字/索引,但您需要能够在末尾输出带有名称的团队)。
- 对于选秀模式,每支球队应按顺序选秀,但轮流轮换顺序应颠倒(即第一个在第一轮选秀的球队是最后一个在第二轮选秀的球队,等等)。
- 继续起草,直到 a) 没有更多的玩家/角色或 b) 用户在两轮之间收到提示,如果他们想继续,他们表示“否”(仅 n 就可以了)。
- 为球队选择球员/角色
- 向用户显示可用人员所处的不同职位/角色,以便可以选择一个(如果需要,您可以使用数字条目来选择他们)。
- 一旦用户选择了位置/角色,显示可用的玩家/角色供用户选择
- 一旦被选中,玩家/角色就会被添加到相应的团队中
- 一旦草稿由于可用选项用尽或用户指示它已完成而结束,请显示以下内容:
- 每个团队(团队名称、球员 - 价值、名称和创建者/团队的信息,以及团队总数(即团队中所有人的价值)
- 最后,指出哪个团队的总价值最低(即平均而言,拥有“最佳”人员的团队)。
示例文件可在课程资料中找到。
格式如下,在具有多个值的行上使用制表符分隔条目:QB <- Position/role
1 A. Rodgers GB <- Value, Name, Team/Creator
2 T. Brady NE
3 D. Brees NO
---- - <- 5 个连字符表示文件即将切换到新位置/角色 RB <- 下一个位置/角色
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.TreeMap;
public class Superhero {
static TreeMap<String, ArrayList<Player>> positions = new TreeMap<String, ArrayList<Player>>();
ArrayList<String> team = new ArrayList<String>();
public static void main(String[] args) throws IOException {
int teams = 0;
String fileName = "";
Scanner input = new Scanner(System.in);
System.out.print("Whats the name of the file: ");
fileName = input.next();
File superHeroFile = new File(fileName);
Scanner file = new Scanner(superHeroFile);
while (file.hasNextLine()){
//read the position
String role = file.nextLine();
// ready to create the ArrayList for all players in this role
ArrayList<Player> playersInRole = new ArrayList<Player>();
positions.put(role , playersInRole);
// until I read "-----" I have a new all players in this current position
String possiblePlayer = file.next();
while (!possiblePlayer.equals("-----")){
String[] playerParts = possiblePlayer.split("\t");
String ranking = playerParts[0];
String name = playerParts[1];
String originalTeam = playerParts[2];
}
}
for(int buildTheTeam = 0; buildTheTeam < teams; buildTheTeam++){
int playerType = input.nextInt();
switch (playerType){
case 1: //Leader
break;
case 2: //Brawn
break;
case 3: //Gadgets
break;
case 4: //Female Influence
break;
case 5: //Bad Guy
break;
}
}
while (file.hasNextLine()){
String wholeFile = file.nextLine();
System.out.println(wholeFile);
}
//get the number of teams
System.out.print("How many teams will you have? ");
teams = input.nextInt();
input.nextLine();
for(int teamName = 0; teamName < teams; teamName++){
System.out.print("What is the name of your team? ");
String TeamName = input.next();
System.out.println("Team " + TeamName );
}
}
}
我将不胜感激任何帮助谢谢!