日期:2014-05-20  浏览次数:20652 次

这是为什么???在线等答案
char   c= 'a ';
char[]   cc=new   char[ 'a '];
System.out.println(font.charWidth(c));
System.out.println(font.charsWidth(cc,0,1));

为什么打印的结果一个是6   一个是8;

------解决方案--------------------
new char[ 'a '];
这是啥意思?用 'a '的Unicode编码值作数组的长度?
------解决方案--------------------
steedhorse(晨星)说得对,你创建了一个长度为 0x65 ( 'a '==0x65) 的字符数组。
font.charWidth(c) 得到的是字符 'a '的宽度;
font.charsWidth(cc,0,1)得到的是cc中第一个字符的宽度,不过这个字符是什么是随机的,它不是 'a '。
如果你想两者一样,你应该这样初始化cc:
char[] cc=new char[]{ 'a '};


--
http://www.agui.googlepages.com
mailto: agui.cn(a)gmail.com
------解决方案--------------------
你创建了一个长度为 0x65 ( 'a '==0x65) 的字符数组
-----------
'a '==97
'A '==65
0x65==96+5=101