以下哪种方法最好将Java中的Integer,Double转换为String。
String.valueOf(doubleVal)
doubleVal + ""
doubleVal.toString()
感谢。
答案 0 :(得分:7)
doubleVal + ""
很可能是最糟糕的,因为它必须与空字符串进行串联。但是,其他两个是等价的。 OpenJDK的源代码:
// java.lang.String
public static String valueOf(double d) {
return Double.toString(d);
}
// java.lang.Double
public static String toString(double d) {
return new FloatingDecimal(d).toJavaFormatString();
}
答案 1 :(得分:3)
我认为没有性能差异。去寻找最可读的!
第一个完全等同于doublevar.toString()(检查javadoc)。第二个更适合连接更长的字符串。
如果您需要格式化数字表示为字符串的方式,那么无论如何您需要查看other classes
答案 2 :(得分:0)
来自官方消息来源:
public static String valueOf(double d) {
return Double.toString(d);
}
因此,只要doubleVal
是double
而不是Double
,第一个和第三个并不是真正不同。这是因为在Double
的情况下,您将调用
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
第二个肯定更糟糕,因为需要连接。
<强>结论:强>
在提出问题之后,我必须假设最有效的方式是调用toString()
方法。
答案 3 :(得分:0)
第一个和第三个是好的,第二个是坏的。
第二个错误的原因是因为代码没有显示您想要执行的操作。代码表示当您实际只想要在串联之前发生的转换时,您希望将值与空字符串连接起来。
答案 4 :(得分:0)
我更喜欢使用Integer.toString(int)
,当您使用String.valueOf(int)
时,它会在内部调用Integer.toString(int)
(与long,float和double相同)。但为了便于阅读,最好使用String.valueOf()
答案 5 :(得分:0)
根据您是使用原始double
类型还是其对象包装器Double
,存在轻微的语义差异。
任何适用于原始double
的内容也适用于包裹Double
的对象,但相反的方法不起作用。 (即,如果参数的类型为Double
,则不接受原始double。)
此外,Double
类型的值可能为null,但原始double
类型不能。
除此之外,没有太大的区别。对于您提供的代码片段,没有任何值得真正谈论的内容。
答案 6 :(得分:0)
i)String.valueOf(int i) ii)Integer.toString(int i)
在查看这些方法的实现后,我看到第一个调用第二个方法。因此,我对String.valueOf(int i)的所有调用都涉及一次调用,而不是直接调用Integer.toString(int i)
只做两种不同的方式做同样的事情
答案 7 :(得分:0)
在String类型中,我们有几个方法valueOf
static String valueOf(boolean b)
static String valueOf(char c)
static String valueOf(char[] data)
static String valueOf(char[] data, int offset, int count)
static String valueOf(double d)
static String valueOf(float f)
static String valueOf(int i)
static String valueOf(long l)
static String valueOf(Object obj)
我们可以看到这些方法能够解决所有类型的数字
您所呈现的特定方法的每个实现:所以对于双重
Double.toString(dobule d)
等等
在我看来,这不是一些历史性的事情,但对于开发人员来说,使用String类中的方法valueOf比使用正确的类型更有用,因为当我们想要更改我们操作的类型时,要做的更改要少一些。
样本1:
public String doStaff(int num) {
//Do something with num
return String.valueOf(num);
}
样品2:
public String doStaff(int num) {
//Do somenthing with num
return Integer.toString(num);
}
正如我们在样本2中看到的那样,我们必须做两处更改,与样本一相反。
我的结论是,使用String类中的valueOf方法更灵活,并且可以在那里使用。
答案 8 :(得分:0)
Java string.valueOf()方法将long,int,double,float等不同类型的值转换为String。
Double double_val = 45.9; 字符串string_conversion = String.valueOf(double_val);