为什么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 [
,其后是代表数组元素类型的字符(在你的情况下C
为char
),然后@是数组的“身份哈希码”(想像它就像是一个“内存地址” )。
这种可悲的状况通常被认为是Java的“错误”
以上是 为什么Java中的toString方法似乎不适用于数组 的全部内容, 来源链接: utcz.com/qa/413638.html