这是问题。此代码:
String a = "0000";
System.out.println(a);
char[] b = a.toCharArray();
System.out.println(b);
返回
0000
0000
但是这个代码:
String a = "0000";
System.out.println("String a: " + a);
char[] b = a.toCharArray();
System.out.println("char[] b: " + b);
返回
字符串a:0000
char [] b:[C @ 56e5b723
为什么?
发布于 2018-01-24 10:44:42
当你
System.out.println(b);
这导致了一个调用print(char[] s),然后println()
JavaDoc的print(char[] s)说:
输出一组字符。根据平台的默认字符编码将字符转换为字节,并且这些字节的写入方式与write(int)方法完全相同。
所以它执行逐字节的输出。
你可以这样做:
System.out.println("char[] b: " + new String(b));
请注意,这是“错误的”,因为你不需要付出任何代码就可以使用系统默认值。
发布于 2018-01-24 11:44:06
System.out.println("char[] b: " + b);
这就像
System.out.println(("char[] b: " + b.toString());
你可以查看“Object.toString()”
https://stackoverflow.com/questions/-100007228
复制相似问题