首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >String.valueOf(someVar) vs ("“+ someVar)

String.valueOf(someVar) vs ("“+ someVar)
EN

Stack Overflow用户
提问于 2017-07-29 07:44:55
回答 2查看 533关注 0票数 2

我想知道两种方法的区别。有一些我现在正在处理的旧代码,通过与空字符串primitive连接,将""值设置为String值。

代码语言:javascript
运行
复制
obj.setSomeString("" + primitiveVariable);

但是在这个链接空Java字符串的大小中,它表示如果您要为每个实例创建一个单独的空字符串,那么显然这将占用更多的内存。

因此,我想在valueOf类中使用String方法。我检查了文档String.valueOf(),如果参数为null,则为;否则返回obj.toString()的值。

所以哪种方法更好

  1. obj.setSomeString("" + primitiveVariable);
  2. obj.setSomeString(String.valueOf(primitiveVariable));

上述过程是在List迭代中完成的,该迭代的大小超过600,预计将来还会增加。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-29 07:51:58

当您执行""时,它不会创建一个对象。它将创建一个字符串文本。实际上是有一个不同的(如何使用“”初始化字符串?)。

说到你的实际问题,

来自字符串连接文档

Java语言提供了对字符串连接操作符(+ )和其他对象转换为字符串的特殊支持。字符串级联是通过StringBuilder(或StringBuffer)类及其附加方法实现的。

因此,不相关的是,您正在创建StringBuilder对象,然后这将给出另一个String对象。

但是,valueOf直接给出一个String对象。去争取吧。

除了表演外,一般想想。为什么要连接空字符串,而实际上要将int转换为string :)

票数 2
EN

Stack Overflow用户

发布于 2017-07-29 07:51:00

问:那么哪一种方法更好

答:obj.setSomeString(String.valueOf(primitiveVariable))通常是更好的方法。它更整洁,更有国内特色。这会将primitiveVariable的值打印为String,而其他的则将其打印为int值。第二种方式是更多的是“黑客”,而不是那么有组织。另一种方法是使用Integer.toString(primitiveVariable),它基本上与String.valueOf相同。

还可以看看这个职位这个也是

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

https://stackoverflow.com/questions/45386769

复制
相关文章

相似问题

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