首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将原始数据类型转换为字符串的更好方法是什么

将原始数据类型转换为字符串的更好方法是什么
EN

Stack Overflow用户
提问于 2011-07-13 20:39:17
回答 8查看 4.6K关注 0票数 46

我可以使用以下命令将整数转换为字符串

代码语言:javascript
复制
String s = "" + 4; // correct, but poor style
or
String u = Integer.toString(4); // this is good

我可以使用以下命令将双精度值转换为字符串

代码语言:javascript
复制
String s = "" + 4.5; // correct, but poor style
or
String u = Double.toString(4.5); // this is good

我可以使用String s = "" + data方法将整型或双精度型转换为字符串。而如果我想使用另一种方法,使用toString(),我必须使用每种数据类型的包装类。那么,为什么在中提到第一种方法很差,而第二种方法更好。哪种方法更好?为什么?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-07-13 20:41:28

我会用

代码语言:javascript
复制
String.valueOf(...)

您可以对所有类型使用相同的代码,但不需要丑陋且毫无意义的字符串连接。

请注意,它还准确地说明了您想要的内容-与给定原始值相对应的字符串值。与"" + x方法相比,在这种方法中,即使不打算连接任何内容,也要应用字符串连接,并且空字符串与您无关。(它可能更昂贵,但我更关心的是可读性,而不是性能。)

票数 67
EN

Stack Overflow用户

发布于 2011-07-13 21:22:21

代码语言:javascript
复制
String s = "" + 4;

被编译成以下代码:

代码语言:javascript
复制
StringBuffer _$_helper = new StringBuffer("");
_$_helper.append(Integer.toString(4));
String s = _$_helper.toString();

显然,这是相当浪费的。请记住,在后台,如果您使用+与字符串的关联,则编译器始终使用StringBuffers

票数 10
EN

Stack Overflow用户

发布于 2011-07-13 20:41:20

还有第三个- String.valueOf(..) (它称为Wrapper.toString(..)

实际上,编译器在这些地方添加了Wrapper.toString(..),所以它在字节码方面是相同的。但""+x更丑陋。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6679015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档