2017-04-15 96 views
0

所以我想用括号和逗号打印一个二维数组。这里是我的代码:用括号和逗号打印二维数组

public class ArrayPrinter { 

    public static int printArray(int[][] arr) { 
     { 
      System.out.println("["); { 
       for (int i = 0; i < arr.length; i++) { 
        for (int j = 0; j < arr[i].length; j++) { 
         System.out.print(arr[i][j]); 
         if (j < arr.length) { 
          System.out.print(", "); 
         } 
        } 
        System.out.println(); 
       } 
      } 
      System.out.println("]"); 
     } 
     return 0; 
    } 

    public static void main(String[] args) { 
     int[] oneD = {5, 6, 7, 8 
     }; 
     printArray(oneD); 
     System.out.println(); { 
      int[][] twoD = { 
       {2, 4, 6, 8}, 
       {8, 7, 9, 1}, 
       {3, 5, 1, 2} 
      }; 
      printArray(twoD); 
      System.out.println(); 
     } 
     int[][] twoD2 = { 
      {1, 2}, 
      {3, 4, 5}, 
      {6}, 
      {7, 8, 9} 
     }; 
     printArray(twoD2); 
     System.out.println(); 
    } 

    public static void printArray(int[] arr) { 
     System.out.print("["); 
     for (int i = 0; i < arr.length; i++) { 
      System.out.print(arr[i]); 
      if (i < arr.length - 1) { 
       System.out.print(", "); 
      } 
     } 
     System.out.println("]"); 
    } 
} 

这是我现在的结果是:

[5, 6, 7, 8] 
[ 
2, 4, 6, 8 
8, 7, 9, 1 
3, 5, 1, 2 
] 
[ 
1, 2, 
3, 4, 5, 
6, 
7, 8, 9, 
] 

这是结果,我想:

[5, 6, 7, 8] 
[ 
[2, 4, 6, 8] 
[8, 7, 9, 1] 
[3, 5, 1, 2] 
] 
[ 
[1, 2] 
[3, 4, 5] 
[6] 
[7, 8, 9] 
] 

我要印有括号和逗号阵列但每个一维数组应该在一个单独的行上。

任何帮助表示赞赏。谢谢!

+1

而不是只是说谢谢你的答案,你也应该upvote你喜欢的。这样,网站本身会奖励用户发布有用的答案。你也应该标记你认为最好解决你的问题的答案(如果适用)。这也标志着问题概述中解决的答案,因此我们不需要再看一遍;) – Imus

+1

如果以下答案中的任何一个满足您的要求,并且您满意他们,那么您可以接受该特定答案。 – Chirag

+0

对不起!我是这个网站的新手!我提出了答案并接受了一个答案。谢谢! –

回答

1

第二环环绕[]

public static int printArray (int[] [] arr) { 
    System.out.println("["); { 
     for (int i = 0; i < arr.length; i++) { 
      System.out.print("["); 
      for(int j = 0; j < arr[i].length; j++) 
      {System.out.print(arr[i][j]); 
      if (j<arr[i].length-1) { 
       System.out.print(", ");} 
      } 
      System.out.println("]"); 
     } 
    } 
    System.out.println("]"); 
    return 0; 
} 
+0

非常感谢你!你实际上是一个拯救生命的人。 –

+1

@KatrinaRoss接受答案,如果它解决你的问题,表明其他..这个问题有很多答案选择任何可以帮助你..它的责任.. – gifpif

2

为什么你不使用Arrays.toString(oneD)Arrays.deepToString(twoD)这样的:

int[] oneD = {5, 6, 7, 8}; 
int[][] twoD = {{2, 4, 6, 8}, {8, 7, 9, 1}, {3, 5, 1, 2}}; 
int[][] twoD2 = {{1, 2}, {3, 4, 5}, {6}, {7, 8, 9}}; 
System.out.println(Arrays.toString(oneD)); 
System.out.println(Arrays.deepToString(twoD)); 
System.out.println(Arrays.deepToString(twoD2)); 

这可以告诉你:

[5, 6, 7, 8] 
[[2, 4, 6, 8], [8, 7, 9, 1], [3, 5, 1, 2]] 
[[1, 2], [3, 4, 5], [6], [7, 8, 9]] 

不要忘了导入库:

import java.util.Arrays; 
+0

我猜是因为有时候你想让柱子在视觉上排列。 – Imus

+0

我尝试过,但列没有排队;这只是一条线。虽然谢谢! –

1

最简单的二维数组方法实现。只是使它使用一维方法:

public static void printArray(int[][] grid) { 
    System.out.println("["); 
    for (int[] arr: grid) { 
     printArray(arr); 
    } 
    System.out.println("]"); 
} 

快速注意这里是我不放在一个2D网格的行之间的空行。如果你希望你的准确输出只需添加一个空println()里面的for循环:

public static void printArray(int[][] grid) { 
    System.out.println("["); 
    for (int[] arr: grid) { 
     printArray(arr); 
     System.out.println(); 
    } 
    System.out.println("]"); 
} 
+0

@lmus谢谢! –

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

与上面的更换成你的两个for循环。您需要追加并在括号内加入主数组中的每个数组。希望这可以帮助!

+0

非常感谢你! –

+0

很高兴能够有所帮助:) – sbs