Re: [問題] 問一個很基礎的問題,關於char
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):