什么是一个印刷字符数组的输出是什么意思?(What does the output of a pri

2019-08-03 16:17发布

我是从C现在移动Java和我以下有关弦乐一些教程。 在教程的一个点,他们从显示的字符数组初始化一个新的字符串,然后打印字符串。 我正沿着以下,但我想同时打印的字符数组,所以我想这个字符串:

class Whatever {
    public static void main(String args[]) {
        char[] hello = { 'h', 'e', 'l', 'l', 'o', '.'};
        String hello_str = new String(hello);
        System.out.println(hello + " " + hello_str);
    }
}

我的产量是这样的:

[C@9304b1 hello.

显然,这是不是你将如何打印在Java中的字符数组。 但是我想知道如果我刚收到的垃圾? 我读了一些网站,打印字符数组给你一个地址,但是,这并不像一个地址,我...我还没有发现在网上有很多关于它。

那么,是什么我刚打印?
和奖金的问题:你如何正确打印在Java中的字符数组?

Answer 1:

但是我想知道如果我刚收到的垃圾?

不,你得到的结果Object.toString()这是不是在阵列覆盖:

Object类的toString方法返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@”,并且对象的哈希码的无符号的十六进制表示。 换句话说,此方法返回一个字符串等于的值:

 getClass().getName() + '@' + Integer.toHexString(hashCode()) 

因此,这不是垃圾 ,因为它有一个意思......但它不是一个特别有用的价值,无论是。

和您的奖金的问题...

你如何正确打印在Java中的字符数组?

呼叫Arrays.toString(char[])将其转换为字符串...或只是

System.out.println(hello);

这将调用println(char[])代替,将其转换成一个字符串。 需要注意的是Arrays.toString将建立一个字符串,它显然是一个字符数组,而System.out.println(hello)是大致等同System.out.println(new String(hello))



文章来源: What does the output of a printed character array mean?