Re: [問題] 問一個很基礎的問題,關於char

看板java作者 (Alien)時間16年前 (2009/09/29 05:08), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《pcb001 (pcb001)》之銘言: [43] : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 220.134.60.246 : 推 archerlin:Java的char是以16位元的Unicode來代表的 ex:'a'=>97 10/18 03:39 : → archerlin:你在輸出時用了加法運算子,故會輸出十進位代碼相加總和. 10/18 03:41 : 推 Joybo:我突然想通了,謝謝你 10/18 03:48 : : 請問我的code如下 : : char a='a'; : char b='b'; : char c='c'; : int z=1; : System.out.println(a+z+b); : System.out.println("a+z="+a+z); : System.out.println("z+a="+z+a); : : 第一行結果是196 : 可是為什麼後2行卻是 : a+z=a1 : z+a=1a : 呢?? : : 而不是它們的ASCII十進位數相加呢?? : : thanks!! char 本身只是一個16bit integer. 所以第一個情況, 你當成是整數的加法就行了 和後面兩個的分別, 是後面兩個做的, 是 String + char + char String 本身有 operator overloading. 當和 char 這個 type 進行相加的時候, 會把 該 char 所代表的字元 concat 在一起, 而不是 該 char 的數值. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82
文章代碼(AID): #1AmINCoi (java)
文章代碼(AID): #1AmINCoi (java)