将数据加载到二维数组中

将数据加载到二维数组中

我正在尝试将数据加载到二维数组中。
我的代码是

import java.util.Arrays;

public class MyClass {
    public static void main(String args[])
    {
        String[] datas=null;

        datas = new String[4];

        datas[0] = "abc,def,ghi";
        datas[1] = "1,2,3";
        datas[2] = "abc,def,ghi";
        datas[3] = "1,2,3";

        int cols = datas.length;
        int rows = datas[1].split(",").length;
        System.out.println("rows="+rows+" and cols="+cols);


        String[][] table_data= new String[cols][rows];
        for(int i=0;i<cols;i++)
        {
            System.out.println("came for " + i);
            table_data[cols] = datas[i].split(",");
        }

        System.out.println("Table Datas = " + Arrays.deepToString(table_data));

    }
}


但是我正在索引超出范围的异常

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
    at MyClass.main(MyClass.java:24)


我试图将声明更改为

String[][] table_data= new String[cols+1][rows+1];


它显示我的输出为

rows=3 and cols=4
came for 0
came for 1
came for 2
came for 3
Table Datas = [[null, null, null, null], [null, null, null, null], [null, null, null, null], [null, null, null, null], [1, 2, 3]]


但这不是我想要的输出。任何帮助都将如此巨大。

最佳答案

我认为,您必须用table_data[row]更改table[i]

for(int i=0;i<cols;i++){
     System.out.println("came for " + i);
     table_data[i] = datas[i].split(",");
}

09-25 21:04