java如何打印数组里面所有的内容(数组的最简单方式是什么)
java如何打印数组里面所有的内容(数组的最简单方式是什么)[Ljava.lang.String;@123ef382这种输出格式不太友好,希望能转换为一种可读方式。例如[1 2 3]
简介问题来源于stackoverflow.
在java语言中,数组是无法重写toString。如果直接打印一个数组,则得到className '@' hashCode数组的十六进制。
int[] a = new int[] { 1 2 3 };
System.out.println(a.toString());
String[] s = new String[] { "1" };
System.out.println(s.toString());
[I@f5ac9e4
[Ljava.lang.String;@123ef382
这种输出格式不太友好,希望能转换为一种可读方式。例如[1 2 3]
Arrays.toString
int[] a = new int[] { 1 2 3 };
System.out.println(Arrays.toString(a));
//结果 [1 2 3]
Arrays.deepToString
String[] deepArray = new String[] {"Alice" "Bob"};
System.out.println(Arrays.deepToString(deepArray));
//结果 [Alice Bob]
Arrays.asList
System.out.println(Arrays.asList(deepArray));
//结果 [Alice Bob]
java8
String.join
String[] deepArray = new String[] {"Alice" "Bob"};
System.out.println(String.join(" " deepArray)); ;
//结果 Alice Bob
Collectors.joining
int[] ints = new int[] {1 2 3 4 5};
System.out.println(IntStream.of(ints).mapToObj(Integer::toString).collect(Collectors.joining(" ")));
// 结果 1 2 3 4 5
Stream.forEach
String[] arrayStr = new String[]{"Java " "Node " "Python " "Ruby"};
Arrays.stream(arrayStr).forEach(System.out::print);
//结果 Java Node Python Ruby
String[][] deepArrayStr = new String[][]{{"mkyong1 " "mkyong2"} {" mkyong3 " "mkyong4"}};
Arrays.stream(deepArrayStr).flatMap(x -> Arrays.stream(x)).forEach(System.out::print);
//结果 mkyong1 mkyong2 mkyong3 mkyong4