在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]
30条答案
按热度按时间q5lcpyga1#
如果使用commons.lang库,我们可以:
ArrayUtils.toString(array)
```int[] intArray = new int[] {1, 2, 3, 4, 5};
String[] strArray = new String[] {"John", "Mary", "Bob"};
ArrayUtils.toString(intArray);
ArrayUtils.toString(strArray);
{1,2,3,4,5}
{John,Mary,Bob}
wh6knrhe2#
在java 8中:
1qczuiv03#
这里有一个可能的打印功能:
例如,如果main是这样的
输出将为{[1][2][3][4]}
vlju58qv4#
在jdk1.8中,可以使用聚合操作和lambda表达式:
另外,从java 8开始,还可以利用string类提供的join()方法打印出数组元素,不带括号,并由所选的分隔符(以下示例中的空格字符)分隔
`输出将是“嗨,朋友!”
z8dt9xmd5#
如果您正在运行jdk 8。
输出:
qvtsj1bj6#
打印数组有以下几种方法
wf82jlnq7#
这被标记为用于打印字节[]的副本。注意:对于字节数组,可能有其他合适的方法。
如果包含iso-8859-1字符,则可以将其打印为字符串。
或者如果它包含utf-8字符串
或者如果你想把它打印成十六进制。
或者,如果您想将其打印为base64。
或者如果要打印有符号字节值的数组
或者,如果要打印无符号字节值数组
cunj1qz18#
vc9ivgsu9#
lo8azlld10#
要添加到所有答案中,还可以选择将对象打印为json字符串。
使用jackson:
使用gson:
tjrkku2a11#
for each循环还可用于打印数组元素:
zour9fqk12#
可以选择使用org.apache.commons.lang3.stringutils.join(*)方法
例如:
我使用了以下依赖项
kxe2p93d13#
我尝试过的简化快捷方式是:
它会打印出来
这种方法不需要循环,最好只用于小型阵列
beq87vna14#
您可以在数组中循环,在循环时打印出每个项目。例如:
输出:
wpx232ag15#
如果数组是char[]类型,还有一种方法:
印刷品