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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 樊佰轩 中级黑马   /  2012-7-17 08:48  /  2514 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

sop("value:"+5"");或者是sop("value:"+5+"");
哪个正确?
此时5是字符串吗?
如果是怎么变成字符串的?!

大神求指教。

评分

参与人数 1黑马币 +20 收起 理由
oracleserver + 20 赞一个!

查看全部评分

7 个回复

倒序浏览
我看你的意思是想打印的结果为-->value:5吧,你直接写为-->sop("value:"+5)即可,因为“value”作为字符串,“+”就是字符串连接符,会自然的把左右两边拼接为一个字符串返回!
回复 使用道具 举报
sop("value:"+5"");这个是错误的,再java编译中就会报错的,因为没有这种格式,
sop("value:"+5+"");这种是完全可以的,
(我个人觉得这里面的5是可以算字符的,数字和字符连接时是可以提升的)
回复 使用道具 举报
后者是正确的
sop("value:"+5"");  这个出错的原因就是你把5""作为一个常量看待了 它不能用作一个常量
sop("value:"+5+"");   这个运行结果是:value:5  首先说明 5本身是一个整数, 但是5+"" 就是字符串了
整数转别为字符串有三种方法 一:就是5+""
                                        二:String.valueOf(5)
                                        三:Integer.toString(5)

点评

谢了。现在明白了。5+""此时5变成了字符串。  发表于 2012-7-17 11:31
谢了。现在明白了。5+""此时5变成了字符串。  发表于 2012-7-17 11:31

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
刚才也看到了一个问类似问题的。这个是关于+作为字符串连接符的应用
如果在+的表达式中存在字符串,那么+号将不作为加法运算符,而是作为字符串连接符,最终返回一个字符串

sop("value:"+5"");或者是sop("value:"+5+"");
前者是错误的,编译时会报语法错误
后者是正确的,"value:"+5+""将整个字符串连接成"value:5"
回复 使用道具 举报
sop("value:"+5""); // 这个是错误的,因为这里5已经是一个字符串了,而“”也是一个字符串,两个字符串不能这样并列存在。
sop("value:"+5+""); //这个是可以的,这里的5已经被转变成字符串了,而这里的“+”是字符串连接符,他可以让两个字符串连接成一个字符串。
哪个正确?         
此时5是字符串吗?               //在java中有这么一个机制,一个变量或者常量与一个字符串进行  + 运算时会自动转变成字符串
如果是怎么变成字符串的?!

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
sop("value:"+5+"");正确。
但其实可以简单写sop("value:"+5);也是可以的。
"value:"和""没有区别,这两个都是字符串,前者有内容,后者无内容。所以不需要写后面的+""也行
回复 使用道具 举报
前者是错的因为("value:"+5"")5已经成字符串了,再编译就错了,因为5已经不是常量了且java中没有种格式,"value:"+5+"")就对
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马