黑马程序员技术交流社区

标题: 貌似是一个字符串的问题 [打印本页]

作者: 樊佰轩    时间: 2012-7-17 08:48
标题: 貌似是一个字符串的问题
sop("value:"+5"");或者是sop("value:"+5+"");
哪个正确?
此时5是字符串吗?
如果是怎么变成字符串的?!

大神求指教。
作者: 田建    时间: 2012-7-17 08:54
我看你的意思是想打印的结果为-->value:5吧,你直接写为-->sop("value:"+5)即可,因为“value”作为字符串,“+”就是字符串连接符,会自然的把左右两边拼接为一个字符串返回!
作者: 陈欢    时间: 2012-7-17 09:02
sop("value:"+5"");这个是错误的,再java编译中就会报错的,因为没有这种格式,
sop("value:"+5+"");这种是完全可以的,
(我个人觉得这里面的5是可以算字符的,数字和字符连接时是可以提升的)

作者: 孙新强    时间: 2012-7-17 09:09
后者是正确的
sop("value:"+5"");  这个出错的原因就是你把5""作为一个常量看待了 它不能用作一个常量
sop("value:"+5+"");   这个运行结果是:value:5  首先说明 5本身是一个整数, 但是5+"" 就是字符串了
整数转别为字符串有三种方法 一:就是5+""
                                        二:String.valueOf(5)
                                        三:Integer.toString(5)
作者: 程潇    时间: 2012-7-17 10:06
刚才也看到了一个问类似问题的。这个是关于+作为字符串连接符的应用
如果在+的表达式中存在字符串,那么+号将不作为加法运算符,而是作为字符串连接符,最终返回一个字符串

sop("value:"+5"");或者是sop("value:"+5+"");
前者是错误的,编译时会报语法错误
后者是正确的,"value:"+5+""将整个字符串连接成"value:5"

作者: 韩伟    时间: 2012-7-17 11:31
sop("value:"+5""); // 这个是错误的,因为这里5已经是一个字符串了,而“”也是一个字符串,两个字符串不能这样并列存在。
sop("value:"+5+""); //这个是可以的,这里的5已经被转变成字符串了,而这里的“+”是字符串连接符,他可以让两个字符串连接成一个字符串。
哪个正确?         
此时5是字符串吗?               //在java中有这么一个机制,一个变量或者常量与一个字符串进行  + 运算时会自动转变成字符串
如果是怎么变成字符串的?!
作者: 党巾水    时间: 2012-7-17 11:59
sop("value:"+5+"");正确。
但其实可以简单写sop("value:"+5);也是可以的。
"value:"和""没有区别,这两个都是字符串,前者有内容,后者无内容。所以不需要写后面的+""也行
作者: 肖天长    时间: 2015-8-11 22:36
前者是错的因为("value:"+5"")5已经成字符串了,再编译就错了,因为5已经不是常量了且java中没有种格式,"value:"+5+"")就对




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2