Why does println(array) have strange output? (“[Ljava.lang.String;@3e25a5”)
我有一个字符串数组,其中包含我定义的四个元素。为什么当我输入
这是我的密码…
1 2 3 4 5 6 7 8 9 |
下面是我得到的输出:
1 |
号
数组的
The
toString method for classObject returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
1
号
要获得数组内容的
此方法返回的
例如,对数组调用此方法将导致以下
1 | "[Einstein, , Newton, , Copernicus, , Kepler.]" |
号
请注意,由于数组元素
1 |
然后,该方法将返回该
1 | "[Einstein, Newton, Copernicus, Kepler]" |
。
重要的是要注意,使用这个方法并不能对生成的
此时,您应该开始看到实现自己的方法以特定于任务的方式输出数组内容的价值。正如其他人所建议的,通过使用
在Java教程文章中,您可以找到更多关于EDCOX1和0个循环的信息。一般来说,Java教程对于初学者来说是一个很好的阅读工具,应该很好地配合你的课程。
使用Arrays类为您扩展数组:
。
会给你的
[Einstein,,Newton,,Copernicus,,Kepler.]
号
双逗号是因为您在数组中包含了它们;删除它们,您将得到一个很好的逗号分隔列表。
所以在你的for循环中会是这样的:
1 2 3 | for(i=0;i<genius.length;i++) { system.out.print(genius[i]); } |
。
所以我会解释这是怎么回事。for循环的结构如下:
1 | for(original value; condition for the variable to go through the for loop; what to do to variable at end of for loop) |
所以从i=0开始,这就满足了条件:i小于genius.length(genius.length给出了数组的长度,在本例中是4)。所以它将通过循环并打印genius[i](即genius[0]),因为i=0。然后它会给我加一个(i++)。
它将再次通过循环,因为i=1填充条件i小于genius.length…..等等……
它会转到i=4,然后停止。你可能会想,天才呢??数组数据的命名如下:1st=arrayname[0],2nd=arrayname[1]……所以第四个就是天才。所以当i=4时,它停止并全部打印。
您可以通过替换为更改其打印格式system.out.print(genius[i]+",");这将在每一个后面加上逗号和空格。
希望有帮助,祝你好运。
使用增强的for循环迭代,如下所示
你需要一个循环:
每个对象都有一个
您需要对数组进行迭代(例如使用
如果您尝试打印一个数组,它将打印您不会真正感兴趣的对象的信息。