黑马程序员技术交流社区

标题: system(“”+3)和system(3) [打印本页]

作者: 匿名    时间: 2011-8-24 19:32
没区别
""+x只是把x转成了字符串类型后在输出
作者: 匿名    时间: 2011-8-24 19:32
刚开始我以为是效率上是不是会更快一点,测了一下,还是直接打印整数快
作者: 范明正    时间: 2011-8-24 19:43
你这样输出没有什么意义,但是在有的情况下加上“”是起到很大的作用的,这跟效率没有多大的关系。
需求:要输出一个字符串的时候,你又不想改变它的值加上一个“”就OK啦,挺方便的。
system.out.println(3);  -->运算的结果是一个整形。
system.out.println(""+3); --> 运算结果是一个字符串。
[ 本帖最后由 范明正 于 2011-08-24  19:45 编辑 ]
作者: 匿名    时间: 2011-8-24 22:18
数值的转换,将x提升为string类型,要求输出字符串时很方便
作者: 匿名    时间: 2011-8-29 16:30
你上边命名的 int x =3;
那么 system(3)就是打印出3这个整数
而 system(“”+3)是一个字符串就上一个整数
输出的时候会把它们一起转成字符串
明白了吧?
作者: 匿名    时间: 2011-9-1 07:58
这样做是为了输出更佳便利,如果我们想要输出的是字符串类型,但是我们的输出语句中式那么如果我们加上“”这后由于类型重载,JVM会自动调用字符串输出的方法。
作者: 匿名    时间: 2011-9-1 11:38
学到了,这里面有一个隐式转换的操作
作者: 郭亚飞    时间: 2011-9-1 21:36
你这里的system.out.println(3)和system.out.println(""+3),虽然运行出来的结果看似没有什么区别,但是两个结果所代表的数据类型不一样,前者输出的3为一个整数,而后者输出的3为一个字符串。
这里的''''代表一个为空的字符串,而当字符串与其他数据类型相加(如 ''''+3 )的时候,就表示将这个字符串与其他的数据相连,生成一个新的字符串,输出的结果当然也就是一个字符串。
这里我举一个例子,看了结果,你就明白了。
例如:system.out.println('a'+3)和system.out.println(''''+'a'+3)
前者的输出结果是100,而后者的输出结果是a3
这是因为:
前者的字符a与整数3相加,a会被提升为整数类型,实际上这里就涉及到数据类型的自动转换(也叫隐式转换),而字符所对应的数字97与3相加,显示出来的是整数100;
而后者因为空字符串''''与字符a以及整数3相加,就代表这个空字符串与字符a以及整数3相连,生成一个新的字符串,那么它所显示出来的结果就是a3
作者: 724681149    时间: 2011-10-15 15:24
输出的类型不一样,第一个输出的是整数类型: 3, 第二种,是一个字符串了。
作者: 朱华    时间: 2011-10-17 14:10
本帖最后由 朱华 于 2011-10-17 14:11 编辑

纯手打,请区分。
是这样,这样输出确实没什么意义,如果你有一段时间的开发经验你就会有这种体会,在前后台通讯以及数据库通讯的时候,你有可能会频繁的遇见类型转换,而int转String标准的转换方式是String.valueOf("3"),3会被转成一个String类型,而String转int的标准形式是Integer.parseInt("3");写法很麻烦是吧,但是有一个偷巧的技巧就是类似于(""+int)这样的形式,int会直接转为String,此方法不仅可以用于打印,也可以用于传参,但是不推荐,会降低程序可读性。




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