黑马程序员技术交流社区

标题: 这两句话的区别【先的错误抱歉哈不知道咱的晕了】 [打印本页]

作者: kevindavid    时间: 2012-5-23 21:00
标题: 这两句话的区别【先的错误抱歉哈不知道咱的晕了】
本帖最后由 kevindavid 于 2012-5-23 21:39 编辑

public static void main(String[] args)
{
  System.out.println('a'+1);
  System.out.println(""+'a'+1);
}
这两句话的打印结果是什么呢?区别是什么呢?为什么会有这样的结果呢?
作者: 程旦    时间: 2012-5-23 21:14
????????
作者: kevindavid    时间: 2012-5-23 21:17
程旦 发表于 2012-5-23 21:14
????????

抱歉哈没注意到结果 把那个代码给忘 掉了
作者: 罗文杰    时间: 2012-5-23 21:30
{: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:31
你叫我参透禅道呢,?
作者: kevindavid    时间: 2012-5-23 21:43
罗文杰 发表于 2012-5-23 21:30
你这两句的输出结果应该没有10的吧
System.out.println('a'+1);   \\这句输出应该是98,把cha ...

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2