Java中将长整型转换为字符串的高效方法

6

我一直在使用

涉及IT技术。
long a = 123456789;
String b = a+"";

将一个long值(或int)转换为String,或在这个角度上将其视为字符串。我的问题是,这样做可以吗?是否有任何负面影响?

使用String.valueOf()Long.toString()有什么区别吗?

谢谢


3
“String b = a.toString();”。认真阅读Javadoc,这是你应该自己弄清楚的事情。 - JB Nizet
文档中说 String.valueOf(long)Long.toString(long) 是相同的。如果你打开第一个,它会显示对第二个的调用。因此,直接调用第二个函数是“更有效率”的,因为你省略了中间调用。 - Timo
由于toString是用于对象的,所以您不能使用a.toString()。 - xenteros
1
@xenteros OP 将 Long 编辑为 long。因此,当 @JKNizet 发表评论时,他关于 String b = a.toString(); 的陈述是正确的。 - Kevin Cruijssen
对不起,我是指原始数据类型“long”,而不是“Long”。 - Matthew
显示剩余2条评论
2个回答

5

最近的JVM可能将其缩减为以下形式:

String b = String.valueOf(a);

就缺点而言,这并不是良好的Java编码风格,因为存在歧义。如果anull,那么b = "null"吗?还是会抛出NPE(NullPointerException)?您有经验知道答案,但所有读者都应该很清楚。


那不正确。Java编译器将使用StringBuilder替换它。 new StringBuilder().append(a).append("").toString() - halber

4

首先,你的代码无法编译 - 你需要在字面量之后添加L

Long a = 123456789L;

String.valueOf()Long.toString()方法都有一个基本的long参数,但由于a是一个包装器(Long),所以您可以使用Object#toString()方法:

String b = a.toString();

如果 a 是原始类型(long),那么 String.valueOf()Long.toString() 的效果是相同的,因此使用哪一个取决于个人偏好。

对不起,我是指原始数据类型long。我只是举个例子,无论如何我都会进行编辑。那么这样连接起来可以吗? - Matthew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接