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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在视频中,老师讲到这里的时候,说3+"";与String.valueOf(3);的效果是一样的。
我觉得这句话还是有问题的,至少我听不懂(也许是我比较笨吧)。
虽然3+"";结果肯定是"3",但是如果后面的字符串是可以有东西的。
因为我觉得3+"a";与"a"+3;是不一样的,我觉得String.valueOf(3);只能解决"a"+3;但是没法解决3+"a";
我不太理解为什么这里3+"";与String.valueOf(3);的效果是一样的。
难道3+"a";与"a"+3;是一样的吗???




于是我决定自己敲代码解决这个问题,结果更看不懂了啊!谁来教教我!


8 个回复

倒序浏览


看上面的结果应该就懂了,你的想法是没有问题的,但是""是没有任何数据的,所以一样,有数据当然就不一样了
回复 使用道具 举报
守门员 发表于 2015-6-16 19:09
看上面的结果应该就懂了,你的想法是没有问题的,但是""是没有任何数据的,所以一样,有数据当然就不一样 ...

但是我想知道是String.valueOf()的用法啊。。
回复 使用道具 举报
3 + "",只是一种语法格式,int类型 + String,编译器自动把int类型解释为String而已。这里强调的是相同效果,不强调原理。
回复 使用道具 举报
iFmmer 发表于 2015-6-16 19:12
但是我想知道是String.valueOf()的用法啊。。

就是我解释的呀,String.valueOf()不就是把传入的参数当作字符串返回来,而""+3编译器返回的也是个字符串,只不过""是没有数值的,你如果是带空格“  ”+3输出的结果和valueOf就不一样
回复 使用道具 举报
被绕晕了
回复 使用道具 举报
iFmmer 中级黑马 2015-6-16 20:17:58
7#
守门员 发表于 2015-6-16 19:32
就是我解释的呀,String.valueOf()不就是把传入的参数当作字符串返回来,而""+3编译器返回的也是个字符串 ...

那String.valueOf的返回值是参数在前还是原字符串在前啊
回复 使用道具 举报


查看一下API就知道了,valueof()要把传入的参数整个运算完,类型不同要转换,总之运算出结果再作为一整个字符串输出


回复 使用道具 举报
iFmmer 中级黑马 2015-6-16 21:13:16
9#
守门员 发表于 2015-6-16 20:35
查看一下API就知道了,valueof()要把传入的参数整个运算完,类型不同要转换,总之运算出结果再作为一整个 ...

哦哦 我懂了!原来如此!谢谢你!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马