黑马程序员技术交流社区
标题:
看下这个程序结果为啥是150abc
[打印本页]
作者:
费破的可
时间:
2013-10-29 08:50
标题:
看下这个程序结果为啥是150abc
本帖最后由 费破的可 于 2013-10-29 10:06 编辑
class Twsr
{
public static void main(String[] args)
{
String s = '1'+'2'+'3'+"abc";
System.out.println("s===="+s);
}
}
作者:
张凡
时间:
2013-10-29 09:07
字符'1','2','3'的值依次是49、50、51,在进行运算时先将这三个字符值相加为150,再加“abc”是150转换为string类型,所以最后输出地值为150abc
作者:
靓仔
时间:
2013-10-29 09:17
因为'1' +'2'+'3'是char类型的,在+"abc"就会把它们转换成String类型的,又因为它们的值分别为49,50,51,相加后,在转成字符串的“150”,所以看到的是150abc
作者:
李文帅
时间:
2013-10-29 09:37
应为char类型数据相加时,会自动转换为int类型,计算的是字符所对应的ASCII码值,'1'=49;'2'='50';'3'=51;
'1'+'2'+'3'=49+50+51=150,其后又加上String类型数据"abc",此时的"+"的含义是字符串连接符,所以是把整型数据150和String类型数据"abc"拼接起来,所以最后的结果是"150abc"
这是我自己的理解,希望对你有所帮助...
作者:
费破的可
时间:
2013-10-29 10:06
谢谢各位
作者:
mayor125
时间:
2013-10-29 10:20
字符'1'、'2'、'3'在ASCII码中的数值分别是49、50、51,加起来就是150 。而"abc"表示一个字符串,也就是String类型,由于任何类型的数据和String类型的数据相运算,结果都想String类型转换,所以"abc"前面的“+”表示连接符,所以最终打印结果为150abc 。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2