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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 kevindavid 于 2012-5-23 21:39 编辑

public static void main(String[] args)
{
  System.out.println('a'+1);
  System.out.println(""+'a'+1);
}
这两句话的打印结果是什么呢?区别是什么呢?为什么会有这样的结果呢?

点评

char+int=int/string+other=string  发表于 2012-5-24 00:54

9 个回复

倒序浏览
????????
回复 使用道具 举报
程旦 发表于 2012-5-23 21:14
????????

抱歉哈没注意到结果 把那个代码给忘 掉了
回复 使用道具 举报
{:soso_e132:}你这两句的输出结果应该没有10的吧
System.out.println('a'+1);   \\这句输出应该是98,把char型的'a'转换成ASCII码为97再加1输出98。  
System.out.println(""+'a'+1); \\这句输出字符串a1
回复 使用道具 举报
你叫我参透禅道呢,?
回复 使用道具 举报
罗文杰 发表于 2012-5-23 21:30
你这两句的输出结果应该没有10的吧
System.out.println('a'+1);   \\这句输出应该是98,把cha ...

今天 不知道咱的晕了!给打错了。抱歉哈
回复 使用道具 举报
魏涞 中级黑马 2012-5-23 21:59:14
7#
额,我把这题的回答发到你的另一个问题里了,
System.out.println('a'+1); //这里的'a'+1会进行算术运算,但当一个char参见算术运算时,会自动提升数据类型为int型,这里的字符a在ASCII中的值为97,参加运算,得到98,在输出时,再转换为字符串输出。
System.out.println(“”+'a'+1);//这里的""是一个空字符串,这里的第一个加号为字符串连接符,得到字符串"a",再与1进行字符串连接,得到字符串"a1"
回复 使用道具 举报
运行结果,98,和a1
原因是char类型在运算时会提升为int,
第二个输出语句则是字符串啦
回复 使用道具 举报
李斌 中级黑马 2012-5-24 09:50:41
9#
版主应该写得很明白了呀~
回复 使用道具 举报
System.out.println('a'+1);//打印结果是98,因为在打印输出之前,'a'+1 两求和运算,a被强制转换成默认的int型,在asci表中a对应的是97,所以打印结果是98.
System.out.println(""+'a'+1);//打印结果是a1. 因为""是一个字符串数据,字符串数据与任何数据使用 + 都是相连接的意思,最终都会变成字符串。也就是说此刻的已经是字符串数据。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马