java程序为什么不能打印出来_关于java:为什么我的阵列不能正确打印出来?

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

我正在尝试用下面的代码编写一个简单的程序来生成一个一维数组,然后您可以使用索引号调用一个值。我用Java和Eclipse作为我的编译器。每当我尝试调试或运行程序时,完整的数组就会打印如下:[I@1fa8d3b。

class Array

{

public static void main(String[] args)

{

int[] MyArray = new int[] {15, 45, 34, 78, 65, 47, 90, 32, 54, 10};

System.out.println("The full array is:");

System.out.println(MyArray);

System.out.println("The 4th entry in the data is:" + MyArray[3]);

}

}

但是,正确的数据输入会在调用时打印出来。我试着在网上寻找我应该做什么的答案,但我找不到任何真正有效的答案。我刚开始学习Java,所以我可以很简单地回答这个问题。如果有人有什么想法,我会非常感激的。

数组具有equals()、hashCode()和toString()的默认实现。

Java是一种面向对象的语言。当您在Java中调用EDOCX1→0 }时,实际上是在Del>内存中的堆上的对象的地址< /DEL>从它的父类EDOCX1→1中得到ToStand代码,下面的代码由EngUAD的注释提供,很抱歉出现错误。您看到打印出来的奇怪字符串是当您请求与变量MyArray相关联的内容时,计算机用来查找数据的引用。

如其他答案所述,要打印出对象的数据,可以使用Array类的内置.toString()方法。这将打印来自对象的数据,而不仅仅是对象引用。

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

修正实际上它是类对象的toString():getClass().getName()+"@"+integer.toHexString(hashCode())。- Eng. Fouad

上面的错误被纠正了,谢谢你的评论,讨厌给出错误的信息。我自己也误解了。以下是API参考代码:

http://DOCS.Oracle .COM/JavaSe/1.5.0/DOCS/API/Java/Lang/Objult.html

实际上是Object类的toString():getClass().getName() +"@" + Integer.toHexString(hashCode())类。

它肯定不是堆上的地址!

@福阿德和马克罗特韦尔感谢您的更正,现在进行编辑。我说错了,我以为是我受教育时的地址。

用途:

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

以便打印数组元素。在您的例子中,您使用了默认的object.toString()实现,这并不是很有用…

改为使用:

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

API引用:array.toString(int[])

成功了,谢谢!我认为这是一个非常简单的修复方法,是正确的。

USSR2012016:这不是固定的,它是Java语言的特性。了解ObjecttoString()方法的作用。

要打印数组,需要使用循环。例如:

for (int i: MyArray){

System.out.print(i +"")}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值