rah*_*e24 11 java arrays string
我有一个字符串数组,其中包含我定义的四个元素.我怎么打字System.out.println(name of Array),它不输出元素?但反而给了我一个奇怪的输出.
这是我的代码......
public class GeniusTrial {
public static void main(String[]args) {
String [] genius = {"Einstein, ", "Newton, ", "Copernicus, ", "Kepler."};
System.out.print(genius);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
[Ljava.lang.String;@3e25a5
Run Code Online (Sandbox Code Playgroud)
Pau*_*ora 19
toString()数组的方法返回String描述数组的标识而不是其内容.这是因为数组不会覆盖Object.toString(),其文档解释了您所看到的内容:
toString类的方法Object返回一个字符串,该字符串由对象为实例的类的名称,符号字符"@"和对象的哈希码的无符号十六进制表示组成.换句话说,此方法返回一个等于值的字符串:Run Code Online (Sandbox Code Playgroud)getClass().getName() + '@' + Integer.toHexString(hashCode())
要获得String数组内容的表示,您可以使用Arrays.toString(Object[]).
在String此方法返回由每个元素的的toString()表示,在顺序出现在阵列中并包含在方括号("[]").相邻元素由逗号和空格(", ")分隔.
例如,在数组上调用此方法将导致以下结果String:
"[Einstein, , Newton, , Copernicus, , Kepler.]"
Run Code Online (Sandbox Code Playgroud)
请注意,会产生双逗号和奇数间距,因为数组的元素String已经包含标点符号和空格.删除那些:
String [] genius = {"Einstein", "Newton", "Copernicus", "Kepler"};
Run Code Online (Sandbox Code Playgroud)
然后该方法将返回String:
"[Einstein, Newton, Copernicus, Kepler]"
Run Code Online (Sandbox Code Playgroud)
重要的是要注意使用此方法不会让您对结果的格式进行任何控制String.它很适合快速检查数组的内容,但仅限于此目的.例如,如果您不希望那些包含方括号,或者想要逐行列出每个元素,该怎么办?
此时,您应该开始看到实现自己的方法的价值,以便以特定于您的任务的方式输出数组的内容.正如其他人所建议的那样,通过使用for循环并构建String要输出的新结果来实现此目的.
您可以for在本Java教程文章中找到有关循环的更多信息.一般来说,Java教程对于初学者来说是很好的阅读,应该很好地配合你的课程.
使用Arrays类为您扩展数组:
System.out.println(Arrays.toString(genius));
Run Code Online (Sandbox Code Playgroud)
会给你
[爱因斯坦,,牛顿,,哥白尼,,开普勒.]
双逗号是因为你把它们包含在你的数组中; 删除它们,你会得到一个很好的逗号分隔列表.
| 归档时间: |
|
| 查看次数: |
70747 次 |
| 最近记录: |