我很困惑为什么会返回1;
(char)('0' + 11) = ;
为什么?
下面的完整代码,其中结束=1;
char[] ending;
char a = (char)('0' + 11/10);
ending = new char[]{a, (char)('0' + 11)};
System.out.println(ending);
'0'
的字符值为48- 48+11=59
- 59的字符值为
';'
您可以在互联网上的任何ASCII字符集中检查整数值中的char
值。
在Java中,char
可以用作值在0到65535之间的int
、short
、byte
、long
,而不需要任何强制转换。
更好的解释可以在中找到:Java char也是int?
您正在为变量a赋值'1'。'0'+11/10=>'0'+1您正在为两个字母的字符串指定结尾。第一个字母是('1'(,第二个是分号。('0'+11(。