【问题标题】:How to write user input 2D array?如何编写用户输入二维数组?
【发布时间】:2017-03-31 04:25:36
【问题描述】:

我是 Java 新手。试图把它变成一个 4*4 的用户输入二维数组。但是当我尝试扫描仪时,行和列总是搞砸了。

public static void main(String[] args) {
        String array = "1 2 2 1,1 3 3 1,1 3 3 2,2 2 2 2"; 
        int[][] input = parseInt(array, 4, 4);
}

而且我还希望用户输入可以输出为:

1 2 2 1
1 3 3 1
1 3 3 2
2 2 2 2

感谢大家的帮助!

【问题讨论】:

标签: java arrays multidimensional-array input


【解决方案1】:

试试这个:

 public static void main(String args[]) {

    String array = "1 2 2 1,1 3 3 1,1 3 3 2,2 2 2 2";
    int[][] input = new int[4][4];//4*4 
    String[] inputs = array.split(",");
    for (int i = 0; i < inputs.length; i++) {
        String[] cols = inputs[i].split(" ");
        for (int j = 0; j < cols.length; j++) {
            input[i][j] = Integer.parseInt(cols[j]);
            System.out.print(input[i][j]);
            System.out.print(" ");// for spacing
        }

        System.out.println();

    }
}

输出:

【讨论】:

    【解决方案2】:

    使用以下方法将数组String转换为二维数组。

    int[][] parseInt(String array, int row, int col) {
        int[][] arr = new int[row][col];
    
        String[] rowStr = array.split(",");
    
        for (int i = 0; i < rowStr.length; i++) {
            String[] colStr = rowStr[i].split(" ");
            for (int j = 0; j < colStr.length; j++) {
                arr[i][j] = Integer.parseInt(colStr[j]);
            }
        }
        return arr;
    }
    

    【讨论】: