小编典典

用Java打印基本数组

java

我有两个数组:

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等于chars.toString()方法,但是为什么有时System.out.print仅打印其元素?


阅读 225

收藏
2020-11-30

共1个答案

小编典典

PrintStream,类型为System.out,该print方法有多个重载,其中一个重载包含一个字符数组(char[]):

public void print(char[] s)

打印字符数组。这些字符将根据平台的默认字符编码转换为字节,并且这些字节将完全按照write(int)方法的方式写入。

因此,在第一个示例中,您将得到123打印。但是,PrintStream由于没有重载print,可以接受an
int[]作为参数,因此,您最终调用print(Object),它将使用toStringan
的方法Object,包括其类型和哈希码。

为了打印int[],您可以Arrays.toString()改用。

2020-11-30