java中数组的返回值是什么类型_打印java 数组的最简单方式是什么?

简介

问题来源于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]

9f20dc1465a6c3416e5d4981dbc63c6c.png
657540612f53078b4236cf237a1bf0e4.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值