所以我有这段代码......这就是它的一部分的样子。
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/