快捷搜索:  汽车  科技

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]


java如何打印数组里面所有的内容(数组的最简单方式是什么)(1)


java如何打印数组里面所有的内容(数组的最简单方式是什么)(2)


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

猜您喜欢: