有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

读取空间分隔整数

用户将读取带有空格分隔整数的输入行,该行的长度未给出, 我想将这一行存储到2d数组(矩阵)中,该数组有4列和I行,其中i=length_of_line/4,换句话说,我想从该行的每四个元素中生成一行,即将该行划分为大小为四的块:

例如: 鉴于0 5 5 18 0 3 1 1 0 5 2 1 0 3 3 0 1 1 3 1 0 3 5 1,我想把它做成: [[0 5 5 18], [0 3 1 1], [0 5 2 1], [0 3 3 0], [1 1 3 1], [0 3 5 1]] 长度从一开始就不知道,否则我可以声明一个2d数组,并使用两个for循环写入其值,我考虑在内部使用一个while循环和一个for循环,但我无法使其工作


共 (1) 个答案

  1. # 1 楼答案

    您需要按以下方式定义代码:

    String input = "0 5 5 18 0 3 1 1 0 5 2 1 0 3 3 0 1 1 3 1 0 3 5 1";
    String data[] = input.split(" ");
    int [][] twoD = new int[4][data.length/4];
    
    int k = 0;
    for (int i = 0; i < twoD.length; i++) {
        for (int j = 0; j < twoD[i].length; j++) {
            twoD[i][j] = Integer.parseInt(data[k++]);
        }
    }
    
    for (int[] is : twoD) {
        System.out.println(Arrays.toString(is));
    }
    

    输出:

    [0, 5, 5, 18, 0, 3]
    [1, 1, 0, 5, 2, 1]
    [0, 3, 3, 0, 1, 1]
    [3, 1, 0, 3, 5, 1]