字符串排名的java.lang.ArrayIndexOutOfBoundsException=playerParts[0]

字符串排名的java.lang.ArrayIndexOutOfBoundsException=playerParts[0],java,Java,在while循环中的第二个while循环中,我不断得到一个java.lang.ArrayIndexOutOfBoundsException。有没有我错过的一步?我正在从文件中读取我的信息。本课程的全部目标是让我做到以下几点: 提示用户输入文件路径 提示用户知道应该创建多少个团队 向用户询问每个团队的名称(如果您愿意,在内部您仍然可以使用团队的编号/索引,但您需要能够在最后输出带有名称的团队) 对于选秀模式,每个团队应按顺序选秀,但应在交替轮次中颠倒顺序(即,第一轮选秀的团队是第二轮选秀的最后一个

在while循环中的第二个while循环中,我不断得到一个
java.lang.ArrayIndexOutOfBoundsException
。有没有我错过的一步?我正在从文件中读取我的信息。本课程的全部目标是让我做到以下几点:

  • 提示用户输入文件路径
  • 提示用户知道应该创建多少个团队
  • 向用户询问每个团队的名称(如果您愿意,在内部您仍然可以使用团队的编号/索引,但您需要能够在最后输出带有名称的团队)
  • 对于选秀模式,每个团队应按顺序选秀,但应在交替轮次中颠倒顺序(即,第一轮选秀的团队是第二轮选秀的最后一个团队,以此类推)
  • 继续进行草稿,直到a)没有更多的玩家/角色,或b)在两轮之间提示用户是否要继续,并指示“否”(仅n即可)
  • 为团队选择球员/角色的步骤
  • 向用户显示可用人员所处的不同职位/角色,以便可以选择一个(如果需要,可以使用数字输入来选择)
  • 一旦用户选择了职位/角色,显示可用的玩家/角色供用户选择
  • 一旦选中,玩家/角色将添加到相应的团队中
  • 由于可用选项用尽或用户指示草稿已完成,草稿结束后,显示以下内容:
  • 每个团队(团队名称、球员-价值信息、姓名和创建者/团队以及团队总数(即团队中所有人的价值)
  • 最后,指出总体价值最低的团队(即,平均而言,拥有“最佳”人员的团队)
  • 课程材料中提供了示例文件

    格式如下所示,在具有多个值的行上使用制表符分隔的条目: 当你打电话的时候

    possiblePlayer.split("\t");
    
    您得到的结果少于3个

    您确定字段是由选项卡分隔的吗

    您可以插入以下行以确定实际发生的情况

    String[] playerParts = possiblePlayer.split("\t");
    System.out.println("possiblePlayer: " + possiblePlayer);
    System.out.println("num fields: " + playerParts.length);
    
    这一行:

    String[] playerParts = possiblePlayer.split("\t");
    
    未按预期工作,因为在某些情况下,
    possiblePlayer
    的选项卡少于3个(
    \t

    在访问数组
    playerpart
    之前,必须先检查数组
    playerpart
    是否具有所需的元素数,
    用户
    playerParts.length
    获取数组的元素编号。

    学习使用调试器的最佳时间。是否有可能在获取异常时,
    possiblePlayer
    具有不包含任何制表符的值?
    String[] playerParts = possiblePlayer.split("\t");