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

我想使用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]之类的乱码。我不需要替代方案,但想知道为什么会这样。

回答:

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

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

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

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

以上是 为什么Java中的toString方法似乎不适用于数组 的全部内容, 来源链接: utcz.com/qa/413638.html

回到顶部