在Java中,数组不会重写toString(),因此如果您尝试直接打印一个,则会得到数组的className+“@”+hashCode的十六进制,如Object.toString()所定义:

int[] intArray = new int[] {1, 2, 3, 4, 5};
System.out.println(intArray); // Prints something like '[I@3343c8b3'

但通常情况下,我们会想要更像[1,2,3,4,5]的东西。最简单的方法是什么?以下是一些输入和输出示例:

// Array of primitives:
int[] intArray = new int[] {1, 2, 3, 4, 5};
// Output: [1, 2, 3, 4, 5]

// Array of object references:
String[] strArray = new String[] {"John", "Mary", "Bob"};
// Output: [John, Mary, Bob]

当前回答

在我看来,使用正则for循环是打印数组的最简单方法。这里有一个基于intArray的示例代码

for (int i = 0; i < intArray.length; i++) {
   System.out.print(intArray[i] + ", ");
}

它的输出与您的一样1, 2, 3, 4, 5

其他回答

从Java5开始,您可以对数组中的数组使用Arrays.toString(arr)或Arrays.deepToString(arr)。注意,Object[]版本对数组中的每个对象调用.toString()。输出甚至按照您要求的方式进行装饰。

示例:

简单阵列:String[]数组=新String[]{“John”,“Mary”,“Bob”};System.out.println(数组.toString(数组));输出:[约翰、玛丽、鲍勃]嵌套数组:String[][]deepArray=新String[][]{{“John”,“Mary”},{“Alice”,“Bob”}};//产生不希望的输出:System.out.println(Arrays.toString(deepArray));//给出所需输出:System.out.println(Array.deepToString(deepArray));输出:[[Ljava.lang.String;@106d69c,[Ljava.lang.String;@52e922][[约翰,玛丽],[爱丽丝,鲍勃]]双阵列:double[]doubleArray={7.0,9.0,5.0,1.0,3.0};System.out.println(Arrays.toString(doubleArray));输出:[7.0, 9.0, 5.0, 1.0, 3.0 ]int数组:int[]intArray={7,9,5,1,3};System.out.println(数组.toString(intArray));输出:[7, 9, 5, 1, 3 ]

这里有一个可能的打印功能:

  public static void printArray (int [] array){
        System.out.print("{ ");
        for (int i = 0; i < array.length; i++){
            System.out.print("[" + array[i] + "] ");
        }
        System.out.print("}");
    }

例如,如果main是这样的

public static void main (String [] args){
    int [] array = {1, 2, 3, 4};
    printArray(array);
}

输出将是{[1][2][3][4]}

不过,很高兴知道,关于“总是先检查标准库”,我从来不会偶然发现Arrays.toString(myarray)的技巧

--因为我正专注于myarray的类型,看看如何做到这一点。我不想重复这个过程:我想要一个简单的调用,让它看起来像我在Eclipse调试器中看到的那样,而myarray.toString()并没有这么做。

import java.util.Arrays;
.
.
.
System.out.println( Arrays.toString( myarray ) );

如果您正在运行jdk 8。

public static void print(int[] array) {
    StringJoiner joiner = new StringJoiner(",", "[", "]");
    Arrays.stream(array).forEach(element -> joiner.add(element + ""));
    System.out.println(joiner.toString());
}


int[] array = new int[]{7, 3, 5, 1, 3};
print(array);

输出:

[7,3,5,1,3]

在Java中打印数组的不同方法:

简单的方式List<String>List=newArrayList<String>();list.add(“一”);list.add(“两个”);list.add(“三”);list.add(“四”);//在控制台中打印列表System.out.println(列表);

输出:[一、二、三、四]

使用toString()String[]数组=新String[]{“一”,“二”,“三”,“四”};System.out.println(数组.toString(数组));

输出:[一、二、三、四]

打印阵列阵列String[]arr1=新String[]{“Fifth”,“Sixth”};String[]arr2=new String[]{“Seventh”,“Eight”};String[][]arrayOfArray=新String[][]{arr1,arr2};System.out.println(arrayOfArray);System.out.println(Arrays.toString(arrayOfArray));System.out.println(Array.deepToString(arrayOfArray));

输出:[[Ljava.lang.String;@1ad086a[[Ljava.lang.String,@10385c1,[Ljava.lang.String;@42719c][[第五,第六],[第七,第八]]

资源:访问阵列