首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:带有char数组的println出现了些混乱的语句

Java:带有char数组的println出现了些混乱的语句
EN

Stack Overflow用户
提问于 2018-01-24 02:11:32
回答 2查看 0关注 0票数 0

这是问题。此代码:

代码语言:javascript
复制
String a = "0000";
 System.out.println(a);
char[] b = a.toCharArray();
 System.out.println(b);

返回

代码语言:javascript
复制
0000
0000

但是这个代码:

代码语言:javascript
复制
String a = "0000";
 System.out.println("String a: " + a);
char[] b = a.toCharArray();
 System.out.println("char[] b: " + b);

返回

代码语言:javascript
复制
字符串a:0000
char [] b:[C @ 56e5b723

为什么?

EN

回答 2

Stack Overflow用户

发布于 2018-01-24 10:44:42

当你

代码语言:javascript
复制
System.out.println(b);

这导致了一个调用print(char[] s),然后println()

JavaDoc的print(char[] s)说:

输出一组字符。根据平台的默认字符编码将字符转换为字节,并且这些字节的写入方式与write(int)方法完全相同。

所以它执行逐字节的输出。

你可以这样做:

代码语言:javascript
复制
System.out.println("char[] b: " + new String(b));

请注意,这是“错误的”,因为你不需要付出任何代码就可以使用系统默认值。

票数 0
EN

Stack Overflow用户

发布于 2018-01-24 11:44:06

代码语言:javascript
复制
System.out.println("char[] b: " + b);

这就像

代码语言:javascript
复制
System.out.println(("char[] b: " + b.toString());

你可以查看“Object.toString()”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档