是';整数+&引用&引用';在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)