是';整数+&引用&引用';在Java中将整数转换为字符串的好方法?

是';整数+&引用&引用';在Java中将整数转换为字符串的好方法?,java,Java,我总是使用String.valueOf(integer)将整数转换为字符串,但我看到有人通过integer+“”来实现。比如说, int i = 0; String i0 = i + ""; 那么,这是一种将整数转换为字符串的好方法吗?尽管它可以工作,i+”是一种将int转换为字符串的技巧。字符串上的+运算符从未设计为使用这种方式。始终使用String.valueOf()使用任何可读性更强的方法String.valueOf(i)或Integer.toString(i)比i+“”更清楚地表达您的

我总是使用
String.valueOf(integer)
将整数转换为字符串,但我看到有人通过
integer+“”
来实现。比如说,

int i = 0;
String i0 = i + "";

那么,这是一种将整数转换为字符串的好方法吗?

尽管它可以工作,
i+”
是一种将
int
转换为字符串的技巧。字符串上的+运算符从未设计为使用这种方式。始终使用
String.valueOf()
使用任何可读性更强的方法
String.valueOf(i)
Integer.toString(i)
i+“”
更清楚地表达您的意图,这不仅仅是优化。我不喜欢

"" + i
因为它不能表达我真正想做的事

我不想在(空)字符串中附加整数。我想将整数转换为字符串:

Integer.toString(i)
或者,不是我喜欢的,但仍然优于串联,获取对象(整数)的字符串表示形式


注:对于经常调用的代码,如循环中的代码,优化当然也是不使用串联的一个要点。

问题是,如果您有一个
整数i
(非原语)并使用
i+“”
,您可能会得到一个非空字符串
“null”
如果
i
为null,则为value,而
String.valueOf(…)
在这种情况下将抛出
NullPointerException


在所有其他情况下都是相同的(也非常类似于将被调用以返回结果的内部流程).考虑到以上内容,这完全取决于您使用它的上下文,例如。如果您计划将字符串转换回
int
/
Integer
+
情况可能会更麻烦。

回答得不错。另外,我认为string.valueOf()更干净。如果
+
操作符不是设计成这样使用的,您将无法执行类似
System.out.println(“i=“+i”)的操作
。这就像再次在Modula 2中编程一样。@Thorbjørnravandersen同意,但你也可以自由地这样做,而且它绝对有效。但我只是说,这是出于某种目的而滥用它。只是建议了一种更干净的方式:)那么你不能说“从未被设计成那样使用”,从JLS中可以清楚地看出,这是故意的。@sᴜʀᴇsʜᴀᴛᴛᴀ, 字符串的
+
运算符的用途是
String.valueOf
i+“”
更有效?@Sayakiss在性能方面不应该有差异(在任何一个像样的编译器中)。你应该只担心可读性。
String.valueOf(i)