黑马程序员技术交流社区

标题: 字符,字符串分别与整数的一个问题? [打印本页]

作者: 铿锵科技    时间: 2013-2-9 20:03
标题: 字符,字符串分别与整数的一个问题?
本帖最后由 张向辉 于 2013-2-10 13:27 编辑

System.out.println('a'+1);//输出98为什么不输出b

System.out.println("a"+1);//为什么输出a1


作者: 炉海佳    时间: 2013-2-9 20:29
('a'+1);这里的'a'字符参与运算会当成与之对于的97,所以97+1就是98 这里的加号是运算符,所以会相加,如果想输出b ,可以加上char转化为字符, 即:(char)('a'+1);   
("a"+1)这里的"a"是字符串,字符串和“+”相连接加号都是字符串连接符,不是运算符,所以不会参与运算,a和1相连也就是a1   希望能帮到你
作者: 黄玉昆    时间: 2013-2-9 20:39
我的理解是:对于第一条语句,因为你是用字符a和常量相连的,那么就会将字符a转换成a在ASCⅡ中对应的值为97,然后计算和1相加的之后再打印输出
对于第二条语句,是字符串与常量相连接,会将常量转换成字符串,然后在输出,所以结果是a1
作者: 王勇文    时间: 2013-2-10 01:29
我组织一下语言, 可能我说得不太准确。
  第一个System.out.println('a'+1);//输出98为什么不输出b    这应该是运算类型提升到int类型,系统默认类型是int类型
      你要输出为b , 要强转类型才得。
第二个 System.out.println("a"+1);//为什么输出a1     这个是真心郁闷了,  字符串数据和任何数据使用+都是相连接,最终都会变成字符串。





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