我有两个数组:
char[] chars = { '1', '2', '3' };
int[] numbers = { 1, 2, 3 };
为什么打电话后System.out.print(chars)
我越来越123
之后System.out.print(numbers)
我有类似的东西[C@9304b1
?
更重要的是,打印后System.out.print("abc" + chars)
我也得到了abc[C@9304b1
.
我知道[C@9304b1
equals char.toString() 方法,但为什么有时 System.out.println 只打印它的元素?
PrintStream
,类型System.out
,有几个重载print
方法,其中之一采用字符数组(char[]
):
public void print(char[] s)
打印字符数组。这
根据平台的字符转换为字节
默认字符编码,并且这些字节完全按照
write(int) 方法的方式。
因此,在第一个示例中,您得到123
打印。然而,PrintStream
没有过载print
可以接受一个int[]
作为一个论点,因此,你最终会调用print(Object),这将使用toString
的方法Object
,由其类型和哈希码组成。
为了打印一个int[]
, 您可以使用Arrays.toString()反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)