A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

System.out.println(tmep-10+'A')这句输出为C到底怎么来的?毕老师说2+A=67,转为字母就是C什么意思啊?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 混蛋哥 于 2014-3-7 12:54 编辑

System.out.println(tmep-10+'A') //这句输出的应该是个数字吧?相当于tmep-10+65
System.out.println((char)(65+2));  //这句输出结果是C
System.out.println((int)('C'));  //这句输出的是67

26个大小写字母和其它字符在ASCII编码中都有定义,可以通过char 或者int进行数字字母间强转,你可以看看ASCII编码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
System.out.println(tmep-10+'A')
假如temp=12,那么就是2+'A';
2是int类型,'A'是字符类型,运算时char自动类型提升为int ,
运算时根据 char 的ASCII与int进行相加,'A' 的ASCII是65,
所以2+'A' ==>2+65=67
如果要转换成字符,需要强制转换,即 (char)(2+'A')  --->  C

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报

已解决

本帖最后由 吹血弄花 于 2014-3-7 13:10 编辑

哦哦 懂了,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马