黑马程序员技术交流社区

标题: 关于字符串String.valueOf方法的问题! [打印本页]

作者: iFmmer    时间: 2015-6-16 17:58
标题: 关于字符串String.valueOf方法的问题!
在视频中,老师讲到这里的时候,说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;是一样的吗???




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



作者: 守门员    时间: 2015-6-16 19:09


看上面的结果应该就懂了,你的想法是没有问题的,但是""是没有任何数据的,所以一样,有数据当然就不一样了

作者: iFmmer    时间: 2015-6-16 19:12
守门员 发表于 2015-6-16 19:09
看上面的结果应该就懂了,你的想法是没有问题的,但是""是没有任何数据的,所以一样,有数据当然就不一样 ...

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

就是我解释的呀,String.valueOf()不就是把传入的参数当作字符串返回来,而""+3编译器返回的也是个字符串,只不过""是没有数值的,你如果是带空格“  ”+3输出的结果和valueOf就不一样
作者: world.net    时间: 2015-6-16 19:43
被绕晕了
作者: iFmmer    时间: 2015-6-16 20:17
守门员 发表于 2015-6-16 19:32
就是我解释的呀,String.valueOf()不就是把传入的参数当作字符串返回来,而""+3编译器返回的也是个字符串 ...

那String.valueOf的返回值是参数在前还是原字符串在前啊
作者: 守门员    时间: 2015-6-16 20:35

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



作者: iFmmer    时间: 2015-6-16 21:13
守门员 发表于 2015-6-16 20:35
查看一下API就知道了,valueof()要把传入的参数整个运算完,类型不同要转换,总之运算出结果再作为一整个 ...

哦哦 我懂了!原来如此!谢谢你!




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