Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中将长字符串转换为字符串的有效方法_Java - Fatal编程技术网

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编码风格,因为存在歧义。如果anull,是否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()