作者adrianshum (Alien)
看板java
标题Re: [问题] 问一个很基础的问题,关於char
时间Tue Sep 29 05:08:27 2009
※ 引述《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