当我使用:为什么System.out.println(+ c1)和System.out.println(“c1”= + c1)的区别?
char c1 = '\u534e';
System.out.println(+c1);
然后我得到:
但是当我使用:
char c1 = '\u534e';
System.out.println("c1 = " +c1);
然后我得到的字符打印正确:
C1 =华
什么问题?
当我使用:为什么System.out.println(+ c1)和System.out.println(“c1”= + c1)的区别?
char c1 = '\u534e';
System.out.println(+c1);
然后我得到:
但是当我使用:
char c1 = '\u534e';
System.out.println("c1 = " +c1);
然后我得到的字符打印正确:
C1 =华
什么问题?
有你的问题3个场景:
1的System.out.println(+ C1);
添加+与字符类型将其转换为int,所以它将调用的println(int)的的System.out的方法,使得它以打印该字符的整数值。
2. System.out.println(c1);
在这种情况下,我们还没有添加+,所以还是以作为炭,所以在这种情况下的println(炭)将被调用,这将导致要被打印实际炭。
3. System.out.println(“c1 =”+ c1);
当我们连接一个char类型来字符串,整个级联将被视为字符串,所以在这种情况下的println(字符串)将被调用,以字符串的其余部分实际字符得到打印。
非常感谢您的宝贵答案!但我仍然有点困惑:为什么“System.out.println(+ c1)”将char类型设置为int类型?我的意思是当我使用System.out.println()格式输入时,不应该将括号中的所有内容都更改为char类型? –
这一切都归结为System.out.println(+ c1)中的'+ c1';'真的是,所以我猜这个骗局在这里很好。 – Tom