关于java:如何轻松打印数组?

How can I print an array easily?

本问题已经有最佳答案,请猛点这里访问。

我目前正在处理数组,每次需要打印数组时,我都会执行for循环。

1
2
3
4
5
System.out.print("[");
for(int i = 0; i < arr.length; i++){
    System.out.print(arr[i] +",");
}
System.out.println("]");

这似乎是一个将被内置到Java中的特性(我使用Java)。是否有内置的方式来打印数组?


你可以使用:Arrays.toString(arr)对于普通数组和/或Arrays.deepToString(arr)用于数组中的数组。这两种方法都返回数组的字符串表示形式。

有关更多信息,请参阅数组文档。


1
System.out.println(Arrays.toString(arr));


您也可以编写自己的方法,该方法与Arrays.toString()的作用相同:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/** Converts an array into a CSV string. */

public static <T> String arrayToCsv(T[] someArray) {

    if (someArray == null || someArray.length == 0) {
        return"";
    }

    StringBuilder csv = new StringBuilder();

    for (T thisT : someArray) {
        String val = (thisT == null) ?"null" : thisT.toString();
        csv.append(val).append(",");
    }

    return csv.toString();
}

测试它:

1
2
3
4
5
Double[] doubleArray = { 2.4, 3.6, 6.5 };
String[] stringArray = {"foo","bar","baz" };

System.out.println(arrayToCsv(doubleArray));
System.out.println(arrayToCsv(stringArray));