java - 输入输出,并非所有行都有相同的数据量

标签 java arrays object io split

我收到了一个充满详细信息的文件,必须将其提取并根据其各自的列存储到不同的对象数组中。棘手的是,并非所有线路都具有相同数量的数据。我可以读取文件,可以拆分它以及所有内容。

20005,Arsenal,ManU,Arsenal,WestHam,Y,2,3,40000
2006,ManU,Chelsea,ManU,WestHam,N
2007,ManU,Arsenal,ManU,WestHam,Y,1,0,260000
2008,Chelsea,ManU,Chelsea,Swansea,Y,4,0,285630
2009,Chelsea,ManCity,Chelsea,Swansea,N

我可以将所有内容存储到数组中,直到第 6 列,之后,对于某些行,未给出信息,那就是当我从 eclipse 收到错误时。我该如何解决这个问题?

这是我的代码:(没有发布全部代码,因为这是一项作业,人们可能正在寻找答案,我不想因共谋而被抓)

try{ 
Scanner kd = new Scanner(file);
    while(kd.hasNext()){
        String data = kd.nextLine();
        String [] values = data.split(",");
        String year = values[0];
        String winningscore= values[6];

我收到此错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at GrandFinal.<init>(GrandFinal.java:19)
at MainClass.main(MainClass.java:11)

最佳答案

您需要检查values数组是否足够长。

if(values.length > 0){
     String year = values[0];
}
if(values.length > 6){ 
 //values.length == 6 means the last element you can access is number 5. 
     String year = values[6];
}

关于java - 输入输出,并非所有行都有相同的数据量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816315/

相关文章:

php - PHP数组中的解析错误

actionscript-3 - AS3自定义对象到ByteArray,然后到自定义对象

javascript - 如何检索 JSON 对象然后将其存储到常规 javascript 对象中?

javascript - 插入数组对象

java - 如何在android中的textview中添加滚动条

java - 解析从 Arduino 上的多个传感器读取的数据

java - 如何接受和输出数组中的 double 和整数?

jquery - 如何在jquery中创建和访问数组

java - Zip4j 无法解压在 unix 中创建的 gz 文件

java - Android:使用 postInvalidate() 还是直接调用 onDraw?