- 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码表) |