2017-04-15 21 views
0

したがって、角括弧とカンマで2次元配列を印刷しようとしています。ここに私のコードは次のとおりです。括弧とカンマで2次元配列を印刷する

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次元配列は別々の行になければなりません。

何か助けていただければ幸いです。ありがとうございました!

あなたは、このよう Arrays.toString(oneD)Arrays.deepToString(twoD)を使用していないのはなぜ
+1

答えに感謝するだけでなく、好きなものをアップvoteする必要があります。そうすれば、サイト自体が有用な回答を掲示するためにユーザーに報酬を与えることになります。また、あなたの質問を最もよく解決したと思う答えを(もしあれば)それに印を付けるべきです。これはまた、質問の概要で解答としてマークされているので、再度見る必要はありません) – Imus

+1

次の回答のいずれかがあなたの要件を満たしていて、満足している場合は、その特定の回答。 – Chirag

+0

申し訳ありません!私はこのサイトを初めて使っています!私は答えをアップアップし、1つの答えを受け入れました。ありがとう! –

答えて

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

:これはあなたを見ることができます

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行でした。しかし、ありがとう! –

1

2D配列メソッドの実装が最も簡単です。 1Dメソッドを使用するようにしてください:

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

ここでは、2次元グリッドの行間に空白行を入れません。あなたはあなたの正確な出力をしたい場合は、単にforループ内の空println()を追加します。

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ループ上記のものを使用して2を交換してください。メイン配列内のすべての配列に大括弧を追加して前に付ける必要があります。お役に立てれば!

+0

ありがとうございます! –

+0

喜んで助けになる:) – sbs

関連する問題