如何在Java中从.txt文件打印2D数组

如何在Java中从.txt文件打印2D数组,java,Java,我的txt文件是: ArrayIndexOutOfBounds Exception at "System.out.println(" "+data[87][2]); 数据[87][2]确实是一个不可靠的指数 如果使用[87][2]对数组进行实例,则最后一个索引是数据[86][1],因为索引范围为[0…86]和[0…1]double[][]data=new double[87][2];将创建一个大小为87和2的双[] 引用这些项的索引应该是86和1。数组总是以索引0而不是1开始 尝试: 那应该行

我的txt文件是:

ArrayIndexOutOfBounds Exception at "System.out.println(" "+data[87][2]);
数据[87][2]确实是一个不可靠的指数

如果使用[87][2]对数组进行实例,则最后一个索引是数据[86][1],因为索引范围为[0…86]和[0…1]

double[][]data=new double[87][2];将创建一个大小为87和2的双[]

引用这些项的索引应该是86和1。数组总是以索引0而不是1开始

尝试:


那应该行

Java中的任何数组对象的索引都是n-1。因此,数组的边界是0和86,其中数据[0][0]给出第一个元素,数据[86][1]给出最后一个元素

替换:

 System.out.println(" "+data[86][1]);      
与:

正如其他人指出的那样,您只是把索引弄错了。除此之外,上面的代码是一种更清晰的做事方式,可能会稍微节省一些。。。注意apachecommons和内置字符串api的使用。在方便的地方将字符串添加到双转换

8.00,28.00  
18.00,28.00 
8.00,23.00  
12.00,20.00 
15.00,30.00 
12.00,32.00 
12.00,20.00 
18.00,31.00 
29.00,25.00 
6.00,28.00  
7.00,28.00  
6.00,24.00
14.00,30.00 
11.00,23.00 
12.00,20.00 
31.00,24.00 
11.00,20.00 
17.00,23.00 
14.00,32.00 
15.00,23.00 
8.00,20.00  
17.00,31.00 
7.00,20.00
12.00,23.00 
15.00,20.00 
12.00,20.00 
21.00,20.00 
27.00,27.00 
18.00,20.00 
25.00,27.00 
46.00,13.00
26.00,10.00 
47.00,22.00 
44.00,14.00
34.00,4.00
34.00,4.00  
44.00,7.00  
39.00,5.00  
20.00,0.00  
43.00,11.00 
43.00,25.00 
34.00,2.00  
25.00,10.00 
50.00,9.00  
25.00,9.00  
39.00,2.00  
34.00,7.00  
44.00,15.00 
36.00,3.00  
40.00,5.00  
49.00,21.00 
42.00,7.00  
35.00,1.00  
30.00,2.00  
31.00,13.00 
53.00,12.00 
40.00,4.00  
26.00,4.00  
50.00,55.00
57.00,51.00 
62.00,52.00 
56.00,52.00 
59.00,40.00 
61.00,68.00 
66.00,49.00 
57.00,49.00
62.00,58.00 
47.00,58.00 
53.00,40.00 
60.00,54.00 
55.00,48.00 
56.00,65.00 
67.00,56.00 
55.00,43.00 
52.00,49.00 
67.00,62.00
68.00,61.00 
65.00,58.00 
46.00,53.00 
46.00,49.00 
47.00,40.00 
64.00,22.00 
64.00,54.00 
63.00,64.00 
63.00,56.00 
64.00,44.00 
63.00,40.00
 System.out.println(" "+data[86][1]);      
System.out.println(" "+data[87][2]); 
System.out.println(" "+data[86][1]);
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;

public class CSVReader {

    public static void main(String[] args) throws IOException {
        List<String[]> dataList = new ArrayList();
        File file = new File("/tmp/data.txt");
        List<String> lines = FileUtils.readLines(file, "UTF-8");
        for (String line : lines) {
            dataList.add(line.split(","));
        }
        String[] val = dataList.get(dataList.size() - 1);
        System.out.println("" + val[0] + " " + val[1]);
    }
}