Java 中将 Integer、Double 转换为 String 哪种方式更好。
String.valueOf(doubleVal)
doubleVal + ""
doubleVal.toString()
谢谢。
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
isdouble
和 not Double
。这是因为在 a 的情况下Double
,您将调用
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
第二个肯定更糟,因为需要连接。
结论:
在这个问题之后,我必须假设最有效的方法是调用该toString()
方法。
第一个和第三个都好,第二个不好。
第二个不好的原因是代码没有显示你想要做什么。代码表示您想将值与空字符串连接起来,而实际上您只需要在连接之前发生的转换。
我更喜欢使用Integer.toString(int)
,当你使用 时String.valueOf(int)
,它会在内部调用 to Integer.toString(int)
(与 long、float 和 double 相同)。但是为了可读性,最好使用String.valueOf()
根据您使用的是原始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) 多一个调用
只是做同一件事的两种不同方式
在 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 中看到的,我们必须进行两项更改,这与示例 1 不同。
我的结论是使用 String 类中的 valueOf 方法更灵活,这就是为什么在那里可用。
Java string.valueOf() 方法将long、int、double、float 等不同类型的值转换为String。
双 double_val=45.9; 字符串 string_conversion=String.valueOf(double_val);