回答編集履歴

1

再帰呼出し関数をひとつにするコードを追加

2021/06/03 03:22

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -43,3 +43,63 @@
43
43
  }
44
44
 
45
45
  ```
46
+
47
+ **追記**
48
+
49
+ 再帰呼出しの関数を 1つにすることもできます。
50
+
51
+ ```Java
52
+
53
+ class Main {
54
+
55
+ public static void main(String[] args) {
56
+
57
+ int[][] numbers = {{1, 2, 3}, {4, 5}, {6}};
58
+
59
+ func(numbers, 0, 0);
60
+
61
+ }
62
+
63
+
64
+
65
+ static void func(int[][] a, int i, int j) {
66
+
67
+ if (i >= a.length) return;
68
+
69
+ int n = a[i].length;
70
+
71
+ if (j < n) {
72
+
73
+ System.out.printf(j == n-1 ? "%d%n" : "%d ", a[i][j]);
74
+
75
+ func(a, i, j+1);
76
+
77
+ }
78
+
79
+ else func(a, i+1, 0);
80
+
81
+ }
82
+
83
+ }
84
+
85
+ ```
86
+
87
+ でも、やっぱり deepToString の出力を正規表現で編集するのが簡単でしょう。
88
+
89
+ ```Java
90
+
91
+ class Main {
92
+
93
+ public static void main(String[] args) {
94
+
95
+ int[][] numbers = {{1, 2, 3}, {4, 5}, {6}};
96
+
97
+ System.out.printf(java.util.Arrays.deepToString(numbers)
98
+
99
+ .replaceAll("], |]]", "\n").replaceAll("\[|,", ""));
100
+
101
+ }
102
+
103
+ }
104
+
105
+ ```