为了账号安全,请及时绑定邮箱和手机立即绑定

打印Java数组最简单的方法是什么?

打印Java数组最简单的方法是什么?

蝴蝶刀刀 2019-05-20 17:43:58
在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]
查看完整描述

6 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

从Java 5开始,您可以在数组中使用Arrays.toString(arr)或使用Arrays.deepToString(arr)数组。请注意,该Object[]版本调用.toString()数组中的每个对象。输出甚至以您要求的方式进行装饰。

例子:

  • 简单数组:

    String[] array = new String[] {"John", "Mary", "Bob"};System.out.println(Arrays.toString(array));

    输出:

    [John, Mary, Bob]
  • 嵌套数组:

    String[][] deepArray = new String[][] {{"John", "Mary"}, {"Alice", "Bob"}};System.out.println(Arrays.toString(deepArray));

  • 输出:

    [[John, Mary], [Alice, Bob]]
  • double 阵:

    double[] doubleArray = { 7.0, 9.0, 5.0, 1.0, 3.0 };System.out.println(Arrays.toString(doubleArray));

    输出:

    [7.0, 9.0, 5.0, 1.0, 3.0 ]
  • int 阵:

    int[] intArray = { 7, 9, 5, 1, 3 };System.out.println(Arrays.toString(intArray));

    输出:

    [7, 9, 5, 1, 3 ]


查看完整回答
反对 回复 2019-05-20
?
呼如林

TA贡献1798条经验 获得超3个赞

始终首先检查标准库。尝试:

System.out.println(Arrays.toString(array));

或者如果您的数组包含其他数组作为元素:

System.out.println(Arrays.deepToString(array));


查看完整回答
反对 回复 2019-05-20
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

然而,很高兴知道,“总是首先检查标准库”,我从来没有偶然发现过 Arrays.toString( myarray )


- 因为我专注于myarray的类型,看看如何做到这一点。我不想迭代这件事:我想要一个简单的调用,使它类似于我在Eclipse调试器中看到的和myarray.toString()就是没有这样做。


import java.util.Arrays;

.

.

.

System.out.println( Arrays.toString( myarray ) );


查看完整回答
反对 回复 2019-05-20
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

在JDK1.8中,您可以使用聚合操作和lambda表达式:


String[] strArray = new String[] {"John", "Mary", "Bob"};


// #1

Arrays.asList(strArray).stream().forEach(s -> System.out.println(s));


// #2

Stream.of(strArray).forEach(System.out::println);


// #3

Arrays.stream(strArray).forEach(System.out::println);


/* output:

John

Mary

Bob

*/


查看完整回答
反对 回复 2019-05-20
?
开心每一天1111

TA贡献1836条经验 获得超12个赞

如果您使用的是Java 1.4,则可以执行以下操作:

System.out.println(Arrays.asList(array));

(当然,这也适用于1.5+。)


查看完整回答
反对 回复 2019-05-20
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

从Java 8开始,人们还可以利用String类join()提供的方法打印出数组元素,不带括号,并用选择的分隔符(下面显示的示例的空格字符)分隔:


String[] greeting = {"Hey", "there", "amigo!"};

String delimiter = " ";

String.join(delimiter, greeting) 

输出将是“嘿有amigo!”。


查看完整回答
反对 回复 2019-05-20
  • 6 回答
  • 0 关注
  • 1610 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信