以特定模式读取csv文件并存储在地图或2D数组中

时间:2016-03-14 15:13:08

标签: java arrays excel csv dictionary

我有一个csv文件如下:

Constraint,3
Op,M1,M2,M3,A1,A2,A3,
M1,0,0,0,7,2,2,
M2,0,0,0,5,4,0,
M3,0,0,0,5,2,0,
A1,0,0,0,3,3,0,
A2,0,0,0,1,1,0,
A3,0,0,0,1,0,0,

Constarint = 3意味着我有M1,M2,M3(三个乘法器)和A1,A2,A3(三个加法器)。

每个单元格的值对应于上面给定的两个运算符 例如:(M1,A1)的值为7

我已经编写了一个java代码来逐行读取这个文件,但为了进一步编码,我需要按如下方式读取该文件:

M1 M1 0
M1 M2 0
M1 M3 0
M1 A1 7

依旧......

如何阅读如上所示的文件,我可以将其存储在地图或二维数组中吗? 由于我对编程很新,所以在这方面的任何帮助都会很棒。

提前干杯谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用2D字符串数组轻松完成。您必须逐行扫描文件并提供2D数组中的值。稍后您可以编写一个函数来打印所需格式的值。

以下是代码段:

public static void main (String[] args)
{
    Scanner in = new Scanner(System.in);
    String[][] matrix = new String[7][7];

    /* Set Values */
    for(int i = 0; i < 7; i++) {
        matrix[i] = in.nextLine().split(",");
    }

    /* Print Function */
    for(int i = 1; i < 7; i++) {
        for(int j = 1; j < 7; j++) {
            System.out.println(matrix[i][0] + " " + matrix[0][j] + " " + matrix[i][j]);
        }
        System.out.println();
    }
}

输出:

M1 M1 0
M1 M2 0
M1 M3 0
M1 A1 7
M1 A2 2
M1 A3 2

M2 M1 0
M2 M2 0
M2 M3 0
M2 A1 5
M2 A2 4
M2 A3 0

...