java 打印数组数字,Java数组打印出奇怪的数字和文本

本问题已经有最佳答案,请猛点这里访问。

我是编程新手。我相信这个问题的答案是肯定的,但我不知道要搜索什么。

好的,我马上去。

这是我的代码:

int[] arr;

arr = new int[5];

arr[0] = 20;

arr[1] = 50;

arr[2] = 40;

arr[3] = 60;

arr[4] = 100;

System.out.println(arr);

这编译起来工作得很好。只是命令的输出让我头晕。

这是输出:[I@3e25a5。

我希望输出代表列表中完全相同的数字(arr)。我怎样才能做到?

@邓肯·琼斯有趣的是,当这篇文章比另一篇文章早了4年的时候,你把它标为一个副本…不过,我理解链接帖子是一个类似于教程的帖子。

@是的,有点奇怪。但这是一种常见的做法-如果有更详细的答案,可以将旧问题作为重复问题关闭。

每个对象都有一个toString()方法,默认方法是显示对象的类名表示,然后显示@及其哈希代码。所以您看到的是默认的toString()表示int数组。要打印数组中的数据,可以使用:

System.out.println(java.util.Arrays.toString(arr));

或者,您可以像其他线程中发布的那样,使用for循环来循环数组。

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

电流输出为classtype@hashcode。

如果需要打印具有多个维度的数组,请使用:

Arrays.deepToString(arr);

还记得为用户定义的类重写toString()方法,这样您就可以根据自己的选择获得objet的表示,而不是默认的classtype@hashcode表示。

要打印值,请使用。

for(int i=0; i

System.out.println(arr[i]);

不是内存地址。类名+"@"+哈希代码。

你是对的。我会编辑的

在很多情况下,它可能是一个内存地址。对象api声明toString的结果是:getClass().getName()+'@'+integer.toHexString(hashCode())和api进一步声明,为了让hashCode尽可能返回唯一的数字:这通常是通过将对象的内部地址转换为整数来实现的,但是这种实现技术不是javamt编程语言所要求的。因此,如果没有重写hashcode和toString,您将看到一个内部地址。

它是数组(奇怪的文本)的默认字符串表示形式。

你只需要循环一下:

for(int i : arr){

System.out.println(i);

}

顺便说一下,你可以写

int[] arr = { 20, 40, 60, 40, 60, 100 };

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

甚至

System.out.println(Arrays.toString(new int[] { 20, 40, 60, 40, 60, 100 }));

System.out.println(Arrays.asList(20, 40, 60, 40, 60, 100));

它打印它的.toString()方法您应该打印每个元素

for(int i=0; i

System.out.println(arr[i]);

}

or

for(Integer i : arr) {

System.out.println(i);

}

for (int i = 0; i < arr.length; ++i)

{

System.out.println(arr[i]);

}

如果总是打印arr[],为什么要循环?

@恩里克·泰,修好了。

这样地:

for (int i = 0; i < arr.length; ++i)

{

System.out.println(arr[i]);

}

那个"奇怪的数字"是你打印出来的数组的参考。它是java.lang.object toString()方法中内置的默认行为。

如果看不到引用,您应该在自己的对象中重写它。

我的短版!

使用array.toString()和printstream.printf(字符串格式,对象…ARGS)。

System.out.printf("%s%n", Arrays.toString(arr));

您打印了引用,而不是引用处的值…总有一天,一切都会变得清晰。

不是这样的。他打印了.toString()返回的内容,数组上的.toString返回一个格式为"[@"的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值