java - 如何将输出固定在单独的行上以创建 5x5 矩阵?

标签 java matrix printing

使用随机双数创建 5x5 矩阵。输出是正确的,但它全部在一行上。我怎样才能避免这种情况?

我尝试在 System.out.print 末尾添加 ln 但得到相同的结果。

    private static double[][] RandomArray(int n) {
    double[][] randomMatrix = new double [n][n];
    double[] randomArray = new double [n];
     Random rand = new Random(); 
        rand.setSeed(System.currentTimeMillis()); 

    for (int i = 0; i < n; i++) {   

        for (int j = 0; j < n; j++) {
            Integer r = rand.nextInt()% 100; 
            randomMatrix[i][j] = Math.abs(r);
        }

    }

    return randomMatrix;
}


public static void main(String[] args){

System.out.println(Arrays.deepToString(RandomArray(5)));
}
 }

[[96.0, 11.0, 9.0, 69.0, 10.0], [76.0, 96.0, 51.0, 86.0, 11.0], [74.0, 67.0, 73.0, 99.0, 32.0], [51.0, 90.0, 86.0, 84.0, 8 5.0 ], [69.0, 30.0, 21.0, 36.0, 89.0]] 我希望输出是单独行上的数组,因此它看起来几乎像一个 5x5 的盒子。输出是包含所有数组的一长行,但这是错误的。

最佳答案

问题是您需要格式化数组,以便当它打印到控制台时,您可以按所需的顺序获得信息。 Arrays.deepToString(RandomArray(5)) 只是接受一个数组并将其转换为字符串。该方法处理二维数组的方式是使用括号包裹每一行,然后用一个更大的括号包裹所有行,这就是你的矩阵。 如果您希望控制台中的代码看起来像矩阵,则必须像这样打印出来。使用嵌套的 for 循环(即 for 循环内的 for 循环),您可以以看起来更像“网格状”的方式打印数据。 您的问题的可能解决方案可能如下所示:

double[][] matrix = RandomArray(5);
for(int i = 0; i < 5; i++){
    for(int j = 0; j < 5; j++){
        System.out.print(matrix[i][j]);
    }
    System.out.println("");
}

或者,如果您想将括号保留在每行末尾并使用 Arrays.deepToString() 方法,您可以执行以下操作:

double[][] matrix = RandomArray(5);
for(int i = 0; i < 5; i++){
    System.out.println(Arrays.deepToString(matrix[i]));
}

将矩阵视为数组的数组是有帮助的,因此如果您想要一整行,您只需采用randomMatrix[0],您就会看到第一个您创建的 5 个长数组。

关于java - 如何将输出固定在单独的行上以创建 5x5 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57294693/

相关文章:

java - hashCode() 可以有动态变化的内容吗?

java - 将 Pushy 与 ALPN 和 MSSQL Jdbc 驱动程序一起使用会引发 java.lang.IllegalAccessError

c++ - 如何生成循环矩阵?

c# - 分解 3x3 矩阵

c++ - 在线段上的水平和垂直翻转

c# - 从 C# 打印数据的好方法?

java - 什么颜色混合算法用于使颜色变暗?

使用 split 函数进行 Java 编译失败

java - 在 Java 中打印十字图案

Java - 无法打印图像(到纸张/打印机)