[英]Convert Integer, Double to String in Java
以下哪种方法最好用Java将Integer,Double转换为String。
String.valueOf(doubleVal)
doubleVal + ""
doubleVal.toString()
谢谢。
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();
}
我认为没有性能差异。 争取最具可读性!
第一个与doublevar.toString()完全等效(请检查javadoc)。 第二个更适合于连接更长的字符串。
如果您需要格式化数字以字符串形式表示的方式,则无论如何都需要研究其他类
从官方来源:
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()
方法。
第一个和第三个是好的,第二个是坏的。
第二个不好的原因是因为代码没有显示您要执行的操作。 该代码说,当您实际上只希望在连接之前发生转换时,您想用一个空字符串来连接该值。
我更喜欢使用Integer.toString(int)
,当您使用String.valueOf(int)
,它会在内部调用Integer.toString(int)
(与long,float和double相同)。 但是出于可读性考虑,最好使用String.valueOf()
根据您使用的是原始double
类型还是其对象包装Double
,语义上会有细微的差异。
任何适用于原始double
事物也将适用于包装了Double
的对象,但相反的事物将不起作用。 (也就是说,如果参数的类型为Double
则将不接受原始的double。)
同样, Double
类型的值可以为null,但原始double
类型不能。
除此之外,根本没有什么区别。 对于您提供的代码段,没有什么值得一谈的。
i)String.valueOf(int i)ii)Integer.toString(int i)
看完这些方法的实现后,我看到第一个正在调用第二个。 结果,我对String.valueOf(int i)的所有调用都比直接调用Integer.toString(int i)多了一个调用
只是两种不同的方式来做同一件事
在字符串类型中,我们有几种方法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中看到的,与样本1相反,我们必须做两个更改。
我的结论是,使用String类中的valueOf方法更灵活,为什么在那里可以使用。
Java string.valueOf()方法将long,int,double,float等不同类型的值转换为String。
Double double_val = 45.9; 字符串string_conversion = String.valueOf(double_val);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.