这一直让我疯狂。我一直试图让阵列在为该阵列打印的最后一个数字后停止打印逗号。我似乎无法让它正常工作。任何帮助都将非常感激。
这是数组的输出:
[5,6,7,8],
[[2,4,6,8,] [8,7,9,1,] [35,1,2,]]
[[12,] [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]]
public class ArrayPrinter {
public static void main(String[] args) {
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}};
printArray(oneD);
printArray(twoD);
printArray(twoD2);
}
public static void printArray(int[] arr)
{
int l = arr.length;
System.out.print("[");
for (int i = 0; i < l; i++)
{
if (arr [i] == l-1)
System.out.print(arr[i]);
else
System.out.print(arr[i] + ", ");
}
System.out.println("]");
}
public static void printArray(int[] [] arr)
{
int l = arr.length;
System.out.println("[");
for (int i=0; i < l; i++)
printArray(arr[i]);
System.out.println("]");
}
}
答案 0 :(得分:0)
如果您只想在不是最后一个元素之后打印逗号,则需要检查其位置,而不是值:
if ( i < l-1 )
System.out.print(arr[i] + ", ");
else
System.out.print(arr[i]);
答案 1 :(得分:0)
对于没有循环或检查索引的解决方案,您可以使用完全符合1D数组要求的Arrays.toString方法:
public static void printArray(int[] array) {
System.out.println(Arrays.toString(array));
}
对于2D数组,您可以使用java 8流与前一种方法结合使用:
public static void printArray(int[][] array) {
String arr2d = Arrays.stream(array) // build a stream of int[]
.map(x -> Arrays.toString(x)) // format each int[] into a pretty string
.collect(Collectors.joining("", "[", "]")); // format the 2d array
System.out.println(arr2d);
}