Java中将长字符串转换为字符串的有效方法
我一直在用Java中将长字符串转换为字符串的有效方法,java,Java,我一直在用 long a = 123456789; String b = a+""; 要将long值(或int)转换为String,或在此透视图中,将其视为String。我的问题是,这样做可以吗?有什么负面影响吗 使用String.valueOf()和Long.toString()有什么区别吗 谢谢首先,您的代码无法编译-您必须在文本后附加一个L: Long a = 123456789L; String.valueOf()和Long.toString()方法都有一个原语Long作为参数,但是
long a = 123456789;
String b = a+"";
要将long
值(或int
)转换为String
,或在此透视图中,将其视为String。我的问题是,这样做可以吗?有什么负面影响吗
使用String.valueOf()
和Long.toString()
有什么区别吗
谢谢首先,您的代码无法编译-您必须在文本后附加一个
L
:
Long a = 123456789L;
String.valueOf()
和Long.toString()
方法都有一个原语Long
作为参数,但是由于a
是一个包装器(Long
),您可以只使用对象#toString()
方法:
String b = a.toString();
但是,如果
a
是一个原语(long
),则String.valueOf()
和long.toString()
都将执行相同的操作,因此使用哪一个是首选项。可以这样做,因为最近的JVM可能会将其减少为:
String b = String.valueOf(a);
至于消极方面,它不是好的Java编码风格,因为存在歧义。如果a为null,是否b=“null”?还是会抛出NPE?您凭经验知道答案,但这对所有代码读者来说都是显而易见的。
String b=a.toString()代码>。说真的,请阅读javadoc。这是你应该自己弄清楚的。文档说String.valueOf(long)
与long.toString(long)
是一样的。事实上,如果你打开第一个,它会显示对第二个的调用。因此,直接调用第二个“更有效”,因为您省略了中间调用。您不能使用.toString(),因为事实上,toString用于对象。@xenteros OP编辑了Long
到Long
。因此,当@jkniset发表评论时,他对String b=a.toString()的语句代码>是正确的。当您声明Long a=123456789
,因为java接受带有终止符的L
的Long
,就像123456789L
很抱歉,我指的是原始数据类型Long。我只是举个例子,无论如何我都会编辑它。那么这样连接可以吗?这是不正确的。java编译器将用StringBuilder替换它。新建StringBuilder().append(a.append(“”).toString()