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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何洪森 黑马帝   /  2012-2-6 23:54  /  2057 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我是这样认为的, str = 1+2+str+3+4 ;按照运算的顺序先算1+2=3是int型
然后3+str也就是3+"abc"会把int型的3转换成String型的"3",结果为"3abc"
然后同样的道理"3abc"+3="3abc3"  最后"3abc3"+4="3abc34"

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1+2+str+3+4的顺序为:
1+2=3 这里的+为加法运算符
3+str="3abc"  这里及以下的+为字符串连接运算符
"3abc"+3="3abc3"
"3abc3"+4="3abc4"

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 何森 于 2012-2-7 15:49 编辑

在网上面看的,输出结果大家考虑一下是什么?题目在下面
public class Demo{
  public static void main(String args[]){
    String str = new String("abc") ;
    str = 1+2+str+3+4 ;
    System.out.println(str) ;
  }
}
运行结果为什么是:3abc34呢?

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 好问题

查看全部评分

5 个回复

倒序浏览
1*(2+str)+3=  ?
回复 使用道具 举报
1+2+str+3+4
执行顺序是,从左到右,首先1+2,得到3,然后+str,这时候str是个字符串,碰到字符串,int类型自动转换成String类型,然后+3然后+4,都是以字符串的形式相加的。
在运算中,一旦碰到了字符串,输出都是字符串。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
钱兆元 发表于 2012-2-7 00:07
1+2+str+3+4
执行顺序是,从左到右,首先1+2,得到3,然后+str,这时候str是个字符串,碰到字符串,int类型 ...

楼主可以改成已解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马