一尘不染

为什么Java中的toString方法似乎不适用于数组

java

我想使用Java中的toString()方法将字符数组转换为字符串对象。这是我使用的测试代码的片段:

import java.util.Arrays;
class toString{
    public static void main(String[] args){
        char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};
        System.out.println(Array.toString());
        }
}

原则上,它应该打印abcdef,但是每次程序执行时它都打印[C @ 6e1408或[C @ e53108]之类的乱码。我不需要替代方案,但想知道为什么会这样。


阅读 455

收藏
2020-03-03

共1个答案

一尘不染

为了使人可读toString(),你必须使用Arrays.toString(),例如:

System.out.println(Arrays.toString(Array));

Java的toString()数组是print [,其后是代表数组元素类型的字符(在你的情况下Cchar),然后@是数组的“身份哈希码”(想像它就像是一个“内存地址” )。

这种可悲的状况通常被认为是Java的“错误”

2020-03-03