【问题标题】:Java - Printing 2d array with (with spaces between lines) [duplicate]Java - 打印二维数组(行间有空格)[重复]
【发布时间】:2015-09-11 18:15:59
【问题描述】:

我有一个基本的 java 问题 - 我有一个数组,我需要对所有元素进行乘法运算,所以对于输入:

1 2 3

输出将是:

1  2  3 
2  4  8 
3  6  9

如何从主打印二维数组?
PS - 我希望该方法只返回新的 2d 数组,而不打印它(我知道我可以不使用该方法并在嵌套循环中打印 mat[i][j])

public class Main {
    public static void main(String[] args) {
        int[] array = {1, 2, 3};
        System.out.println(matrix(array));
    }

    public static int[][] matrix(int[] array){
        int[][] mat = new int[array.length][array.length];
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                mat[i][j] = array[i] * array[j];
            }
        }

        return mat;
    }
}

【问题讨论】:

  • "Enter" 在这里工作。在一行的末尾放两个空格,你就会得到你想要的 Enter。这也让我感到惊讶。
  • 宗 - System.out.println(Arrays.deepToString(array));在这里不起作用....我在发布之前已经尝试过

标签: java arrays


【解决方案1】:

您必须打印数组的所有单个元素,因为如果您只是尝试打印一个数组,它会打印出您可能不想看到的各种其他内容。所以你挑选出你想要的东西,然后稍微格式化一下。在下面的代码中,您打印了每个元素,并用空格分隔,直到它到达新行,然后跳转到新行。

int[][] matrixArray = matrix(array);

for(int i = 0, i < matrixArray.length; i++) {
    for(int j = 0; j < matrixArray[0].length; j++) {
        System.out.print(matrixArray[i][j] + " ");
    }
    System.out.println();
}

【讨论】:

  • 没有其他“技巧”? Java 不知道如何打印这样的东西?
  • 我希望能学到一个新技巧...非常感谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-12
  • 2015-03-21
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多