gpt4 book ai didi

java - 有关 ArrayIndexOutOfBoundsException 的问题吗?

转载 作者:行者123 更新时间:2023-12-02 03:41:59 24 4
gpt4 key购买 nike

所以我有这段代码......这就是它的一部分的样子。

File File = new File("data2.txt");
Scanner readUpdate = new Scanner(File);
Player[] updatePlayers = new Player[200];
String updateSTR;
int updateTotalCounter = 0;
while (readUpdate.hasNext()) {

updateSTR = readUpdate.nextLine();
String [] updateData = updateSTR.split(",");
updatePlayers[updateTotalCounter] = new Player(updateData[0], updateData[1],updateData[2],
Integer.parseInt(updateData[3]), Integer.parseInt(updateData[4]));

updateTotalCounter++;

}

readUpdate.close();

Java 不断出现并告诉我

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Main.main(Main.java:43)

我不明白这是什么意思。有什么线索吗??

最佳答案

这意味着您正在尝试访问数组中大于数组中元素数量的位置,因此您会遇到常见的异常。

您假设数组 updateData 对于您读取的每一行都有 5 个位置,而对于至少其中一行来说这似乎是错误的,因此会引发异常。

确保

String [] updateData = updateSTR.split(",");

所有行的大小都是 5(从 0 到 4)。通过这种方式修复问题,但请注意某些行将不会被处理:

File File = new File("data2.txt");
Scanner readUpdate = new Scanner(File);
Player[] updatePlayers = new Player[200];
String updateSTR;
int updateTotalCounter = 0;
while (readUpdate.hasNext()) {

updateSTR = readUpdate.nextLine();
String [] updateData = updateSTR.split(",");
if (updateData.lenght < 5) {
// invalid line format... print any message...
} else {
updatePlayers[updateTotalCounter] = new Player(updateData[0], updateData[1],updateData[2],
Integer.parseInt(updateData[3]), Integer.parseInt(updateData[4]));

updateTotalCounter++;
}

}

readUpdate.close();

关于java - 有关 ArrayIndexOutOfBoundsException 的问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36734372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com