在Java中,数组不会覆盖toString(),因此,如果您尝试直接打印一个数组,则得到className+'@'+ hashCode数组的十六进制,如下所示Object.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]
从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"}};
System.out.println(Arrays.toString(deepArray));
//output: [[Ljava.lang.String;@106d69c, [Ljava.lang.String;@52e922]
System.out.println(Arrays.deepToString(deepArray));
输出:
[[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 ]
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。