首页 > Java > 在 Java 中,数组不会覆盖直接打印,会得到数组的 + ‘@’ + 十六进制,有没有更简单方法?

在 Java 中,数组不会覆盖直接打印,会得到数组的 + ‘@’ + 十六进制,有没有更简单方法?

上一篇 下一篇

在 Java 中,数组不会覆盖,所以如果你尝试直接打印一个,你会得到数组的 + ‘@’ + 十六进制,定义如下:toString()classNamehashCodeObject.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]

分割线

网友回答:

始终先检查标准库。

import java.util.Arrays;

然后尝试:

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

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

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

分割线

网友回答:

从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"}};
    // Gives undesired output:
    System.out.println(Arrays.toString(deepArray));
    // Gives the desired output:
    System.out.println(Arrays.deepToString(deepArray));
    

    输出:

    [[Ljava.lang.String;@106d69c, [Ljava.lang.String;@52e922]
    [[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 ]
    

分割线

网友回答:

很高兴知道,但是,至于“始终首先检查标准库”,我永远不会偶然发现Arrays.toString( myarray )

–因为我专注于 myarray 的类型以了解如何做到这一点。我不想遍历这个东西:我想要一个简单的调用来让它类似于我在 Eclipse 调试器中看到的,而 myarray.toString() 只是没有这样做。

import java.util.Arrays;
.
.
.
System.out.println( Arrays.toString( myarray ) );

模板简介:该模板名称为【在 Java 中,数组不会覆盖直接打印,会得到数组的 + ‘@’ + 十六进制,有没有更简单方法?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 199次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-15
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信素材 微信公众平台 微信图片 企业网站 自适应 单页式简历模板 html5 微信模板 微信文章 响应式
您可能会喜欢的其他模板