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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2011-8-24 19:12  /  2202 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

黑马网友  发表于 2011-8-24 19:32:28
楼主
没区别
""+x只是把x转成了字符串类型后在输出
回复 使用道具 举报
黑马网友  发表于 2011-8-24 19:32:45
沙发
刚开始我以为是效率上是不是会更快一点,测了一下,还是直接打印整数快
回复 使用道具 举报
你这样输出没有什么意义,但是在有的情况下加上“”是起到很大的作用的,这跟效率没有多大的关系。
需求:要输出一个字符串的时候,你又不想改变它的值加上一个“”就OK啦,挺方便的。
system.out.println(3);  -->运算的结果是一个整形。
system.out.println(""+3); --> 运算结果是一个字符串。
[ 本帖最后由 范明正 于 2011-08-24  19:45 编辑 ]

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-24 22:18:02
板凳
数值的转换,将x提升为string类型,要求输出字符串时很方便
回复 使用道具 举报
黑马网友  发表于 2011-8-29 16:30:02
报纸
你上边命名的 int x =3;
那么 system(3)就是打印出3这个整数
而 system(“”+3)是一个字符串就上一个整数
输出的时候会把它们一起转成字符串
明白了吧?

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-1 07:58:01
地板
这样做是为了输出更佳便利,如果我们想要输出的是字符串类型,但是我们的输出语句中式那么如果我们加上“”这后由于类型重载,JVM会自动调用字符串输出的方法。
回复 使用道具 举报
黑马网友  发表于 2011-9-1 08:11:08
7#
打个比方,你想在ArrayList<String>中存入学号3(int型),由于3不是String类型的,编译时会出现如下错误:
[color=DarkOrange]L.java:8: 找不到符号
符号: 方法 add(int)
位置: 接口 java.util.List<java.lang.String>
                m.add(3);
                 ^
1 错误[/color]
如果将3 改为3+""存入,则编译不会出现问题。
回复 使用道具 举报
黑马网友  发表于 2011-9-1 11:38:22
8#
学到了,这里面有一个隐式转换的操作
回复 使用道具 举报
你这里的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

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
724681149 黑马帝 2011-10-15 15:24:53
10#
输出的类型不一样,第一个输出的是整数类型: 3, 第二种,是一个字符串了。

评分

参与人数 1技术分 +1 黑马币 +1 收起 理由
admin + 1 + 1

查看全部评分

回复 使用道具 举报
朱华 黑马帝 2011-10-17 14:10:35
11#
本帖最后由 朱华 于 2011-10-17 14:11 编辑

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

评分

参与人数 1技术分 +1 黑马币 +1 收起 理由
admin + 1 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马