黑马程序员技术交流社区
标题:
输出1+"a"和"a"+1为什么不一样
[打印本页]
作者:
yoghurt29
时间:
2016-4-26 22:49
标题:
输出1+"a"和"a"+1为什么不一样
怎么回事
作者:
gsa798780633
时间:
2016-4-26 22:57
"a"是字符串,相加时int自动转型为String了,如果是单引号结果就一样
作者:
张狮子
时间:
2016-4-26 23:08
“a”是字符串,也是是一个String类对象,而+符号可以是数学的加号,也是连接符,当“a”+1是它是连接符,所以int类型会自动转换成String类型,就会不一样
作者:
leo_yang
时间:
2016-4-26 23:12
因为a是String类型的 在前面输出会把后面的也弄成String类型输出
作者:
yanwenyong
时间:
2016-4-26 23:19
System.out.println(1+"a");
System.out.println("a"+1);
System.out.println(1+'a');
System.out.println('a'+1);
复制代码
执行结果是
1a
a1
98
98
先说前两个,为什么一个是 1a 一个是 a1
这个涉及到不同类型数据相加的自动转换问题
当1+“a” 因为a是由双引号括起来,因此a是作为一个字符串类型的数据出现
当一个int 类型的数据 与字符串类型的数据相加,便会成为一个字符串类型的数据
起始在程序中的显示为“1a”
"a"+1类似字符串与int类型相加 int转变为字符串类型 所以变成了"a1"
至于说为什么单引号的相加 就会相等
那是因为 单引号是字符类型的数据 字符类型的数据与int类型的数据相加
字符类型会自动转换成int类型的数据
至于为什么是98
其实'a'+1 相当于 97+1
字符a 转换成了 97(具体什么字符转换成int类型什么值 可以参考一下ASCII码表)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2