我一直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   );
    }
}
}
我将不胜感激任何帮助谢谢!