在Java中将Integer,Double转换为String

时间:2012-06-11 08:35:12

标签: java

以下哪种方法最好将Java中的Integer,Double转换为String。

String.valueOf(doubleVal)
doubleVal + ""
doubleVal.toString()

感谢。

9 个答案:

答案 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);
}

因此,只要doubleValdouble而不是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);