當我使用:爲什麼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