优秀的编程知识分享平台

网站首页 > 技术文章 正文

打印java 数组的最简单方式是什么?

nanyue 2024-09-15 23:21:35 技术文章 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

Tags:

最近发表
标签列表