A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 费破的可 中级黑马   /  2013-10-29 08:50  /  942 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 费破的可 于 2013-10-29 10:06 编辑

class Twsr
{
        public static void main(String[] args)
        {
                String s = '1'+'2'+'3'+"abc";
                System.out.println("s===="+s);
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 新人鼓励~多敲代码多推敲

查看全部评分

5 个回复

倒序浏览
字符'1','2','3'的值依次是49、50、51,在进行运算时先将这三个字符值相加为150,再加“abc”是150转换为string类型,所以最后输出地值为150abc

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 感谢解答~

查看全部评分

回复 使用道具 举报
因为'1' +'2'+'3'是char类型的,在+"abc"就会把它们转换成String类型的,又因为它们的值分别为49,50,51,相加后,在转成字符串的“150”,所以看到的是150abc

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
应为char类型数据相加时,会自动转换为int类型,计算的是字符所对应的ASCII码值,'1'=49;'2'='50';'3'=51;
'1'+'2'+'3'=49+50+51=150,其后又加上String类型数据"abc",此时的"+"的含义是字符串连接符,所以是把整型数据150和String类型数据"abc"拼接起来,所以最后的结果是"150abc"
这是我自己的理解,希望对你有所帮助...

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
谢谢各位
回复 使用道具 举报
字符'1'、'2'、'3'在ASCII码中的数值分别是49、50、51,加起来就是150 。而"abc"表示一个字符串,也就是String类型,由于任何类型的数据和String类型的数据相运算,结果都想String类型转换,所以"abc"前面的“+”表示连接符,所以最终打印结果为150abc 。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马