在java中打印多维数组的最佳方法是什么?

时间:2014-12-30 18:31:55

标签: java arrays printing

我最近在java中启动了mutltidimensional int数组。在那之前,一维阵列已经足够了。

要打印我使用过的System.out.println(Arrays.toString(myarray));

但它不能用于多维数组,它与你尝试直接打印一维数组时的效果相同。

4 个答案:

答案 0 :(得分:10)

你需要迭代它。

最简单的方法是使用提供的Arrays.deepToString()来搜索数组中的数组。请注意,它与Arrays.toString()一样,仅在Java 1.5+中可用,但我当然希望您现在使用Java 5。

例如:

int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 } };
System.out.println(Arrays.deepToString(myArray));

或者,您可以自己迭代,这也允许使用您选择打印的样式进行更多自定义。

例如:

int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 } };
for(int[] arr : myArray)
    System.out.println(Arrays.toString(arr));

答案 1 :(得分:1)

尝试类似:

int number[][] = { {1, 2, 3}, {1}, {2}};
for (int i = 0; i < number.length; i++)
    System.out.println(Arrays.toString(number[i]));

答案 2 :(得分:1)

尝试使用Commons Lang 3的ArrayUtils toString方法:

   @Test
   public void multiArrayToString(){
      int[] a = {1,2,3};
      int[] b = {4,5,6};
      int[][] c = {a, b};
      String aCommonsLangToString = ArrayUtils.toString(a);
      String bCommonsLangToString = ArrayUtils.toString(b);
      String cCommonsLangToString = ArrayUtils.toString(c);
      System.out.println(aCommonsLangToString);
      System.out.println(bCommonsLangToString);
      System.out.println(cCommonsLangToString);
   }

输出:

{1,2,3}
{4,5,6}
{{1,2,3},{4,5,6}}

答案 3 :(得分:1)

你可以像这样轻松地遍历数组:

if (yourArray != null) {
    // Where object type means the type of your array.
    for (ObjectType subArray : yourArray) {
        // If this method can't receive nulls, then validate that subArray isn't null
        System.out.println(Arrays.toString(subArray));
    }
}