在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条答案
按热度按时间raogr8fs16#
打印数组有以下几种方法
whitzsjs17#
从Java8开始,还可以利用
join()
string类提供的用于打印数组元素的方法,不带括号,并由所选分隔符分隔(以下示例中的空格字符):输出将是“嘿,朋友!”。
qmb5sa2218#
您可以在数组中循环,在循环时打印出每个项。例如:
输出:
sh7euo9m19#
可以选择使用org.apache.commons.lang3.stringutils.join(*)方法
例如:
我使用了以下依赖项
kuarbcqp20#
for each循环还可以用于打印数组的元素:
l5tcr1uw21#
在java中打印数组的不同方法:
简单的方法
输出:[一,二,三,四]
使用
toString()
```String[] array = new String[] { "One", "Two", "Three", "Four" };
System.out.println(Arrays.toString(array));
String[] arr1 = new String[] { "Fifth", "Sixth" };
String[] arr2 = new String[] { "Seventh", "Eight" };
String[][] arrayOfArray = new String[][] { arr1, arr2 };
System.out.println(arrayOfArray);
System.out.println(Arrays.toString(arrayOfArray));
System.out.println(Arrays.deepToString(arrayOfArray));
2g32fytz22#
这里有一个可能的打印功能:
例如,如果main是这样的
输出将是{[1][2][3][4]}
yk9xbfzb23#
nle07wnf24#
数组.tostring
作为一个直接的答案,包括@esko在内的几个公司提供的解决方案
Arrays.toString
以及Arrays.deepToString
方法,简直就是最好的。java 8-stream.collect(joining()),stream.foreach
下面我试着列出一些建议的其他方法,试图稍加改进,最值得注意的是使用
Stream.collect
运算符,使用joining
Collector
,来模仿String.join
他在做什么。pzfprimi25#
总是先检查标准库。
然后尝试:
或者如果您的数组包含其他数组作为元素:
7ajki6be26#
在java 8中:
jgovgodb27#
java 8之前
我们本可以用
Arrays.toString(array)
打印一维数组Arrays.deepToString(array)
对于多维数组。java 8
现在我们可以选择
Stream
以及lambda
打印数组。打印一维数组:
输出为:
[1, 2, 3, 4, 5]
[约翰,玛丽,鲍勃]
1
2
三
4
5
厕所
玛丽
鲍勃
打印多维数组只是为了万一我们想打印多维数组我们可以使用
Arrays.deepToString(array)
作为:现在要注意的是
Arrays.stream(T[])
,如果int[]
返回我们Stream<int[]>
然后是方法flatMapToInt()
将流的每个元素与通过将提供的Map函数应用于每个元素而生成的Map流的内容进行Map。输出为:
[[11, 12], [21, 22], [31, 32, 33]]
【约翰,好极了】【玛丽,李】【鲍勃,Json】】
11
12
21
22
31
32
33
厕所
好极了
玛丽
李
鲍勃
Json
i7uaboj428#
在jdk1.8中,可以使用聚合操作和lambda表达式:
另外,从Java8开始,还可以利用string类提供的join()方法打印出数组元素,不使用括号,并用所选的分隔符(下面示例中的空格字符)分隔
`输出将是“嘿,朋友!”
4c8rllxm29#
我尝试过的一个简化的快捷方式是:
它会打印出来
这种方法不需要循环,最好只用于小型阵列
e7arh2l630#