打印Java数组最简单的方法是什么?

在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]


蝴蝶刀刀
浏览 1611回答 6
6回答

暮色呼如

从Java 5开始,您可以在数组中使用Arrays.toString(arr)或使用Arrays.deepToString(arr)数组。请注意,该Object[]版本调用.toString()数组中的每个对象。输出甚至以您要求的方式进行装饰。例子:简单数组:String[] array = new String[] {"John", "Mary", "Bob"};System.out.println(Arrays.toString(array));输出:[John, Mary, Bob]嵌套数组:String[][] deepArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};System.out.println(Arrays.toString(deepArray));输出:[[John, Mary], [Alice, Bob]]double 阵: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(Arrays.toString(intArray));输出:[7, 9, 5, 1, 3 ]

呼如林

始终首先检查标准库。尝试:System.out.println(Arrays.toString(array));或者如果您的数组包含其他数组作为元素:System.out.println(Arrays.deepToString(array));

蝴蝶不菲

然而,很高兴知道,“总是首先检查标准库”,我从来没有偶然发现过 Arrays.toString( myarray )- 因为我专注于myarray的类型,看看如何做到这一点。我不想迭代这件事:我想要一个简单的调用,使它类似于我在Eclipse调试器中看到的和myarray.toString()就是没有这样做。import java.util.Arrays;...System.out.println( Arrays.toString( myarray ) );

慕姐4208626

在JDK1.8中,您可以使用聚合操作和lambda表达式:String[] strArray = new String[] {"John", "Mary", "Bob"};// #1Arrays.asList(strArray).stream().forEach(s -> System.out.println(s));// #2Stream.of(strArray).forEach(System.out::println);// #3Arrays.stream(strArray).forEach(System.out::println);/* output:JohnMaryBob*/

开心每一天1111

如果您使用的是Java 1.4,则可以执行以下操作:System.out.println(Arrays.asList(array));(当然,这也适用于1.5+。)

繁星点点滴滴

从Java 8开始,人们还可以利用String类join()提供的方法打印出数组元素,不带括号,并用选择的分隔符(下面显示的示例的空格字符)分隔:String[] greeting = {"Hey", "there", "amigo!"};String delimiter = " ";String.join(delimiter, greeting) 输出将是“嘿有amigo!”。
打开App,查看更多内容
随时随地看视频慕课网APP