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

打印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条经验 获得超13个赞

如果您使用的是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

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号