我想将String
转换为Double
数据类型。我不知道是否应该使用parseDouble
或valueOf
。
这两种方法有什么区别?
答案 0 :(得分:74)
parseDouble
返回包含字符串值的原始double:
返回一个初始化为由指定String表示的值的新double,由double类的valueOf方法执行。
valueOf
返回一个Double实例,如果已经缓存,您将获得相同的缓存实例。
返回表示指定double值的Double实例。如果 不需要新的Double实例,这种方法通常应该是 优先使用构造函数Double(double),就像这个方法一样 可能会产生明显更好的空间和时间表现 缓存经常请求的值。
为避免创建新Double对象实例的开销,通常应使用valueOf
答案 1 :(得分:32)
Double.parseDouble(String)
将返回原始double
类型。
Double.valueOf(String)
将返回类型为Double
的包装器对象。
所以,例如:
double d = Double.parseDouble("1");
Double d = Double.valueOf("1");
此外,valueOf(...)
是一种重载方法。它有两种变体:
Double valueOf(String s)
Double valueOf(double d)
parseDouble
是具有以下签名的单一方法:
答案 2 :(得分:1)
它们都将String转换为double值,但是当parseDouble()方法返回原始double值时,valueOf()方法进一步将原始double转换为包含原始double值的Double包装类对象。
如果String中的值不能转换为原始double,则从String转换为primitive double可能会抛出NFE(NumberFormatException)。
答案 3 :(得分:1)
parseDouble()方法用于初始化STRING(应该包含一些数值)....它返回的值是原始数据类型,如int,float等。
但是valueOf()创建了一个Wrapper类的对象。您必须打开它才能获得double值。它可以与巧克力进行比较。制造商用一些箔或纸包裹巧克力以防止污染。用户拿出巧克力,去掉并扔掉包装并吃掉它。
请注意以下转换。
int k = 100;
Integer it1 = new Integer(k);
将int数据类型k转换为对象,it1使用Integer类。 it1对象可以在Java编程中用于需要k的对象。
以下代码可用于解包(从Integer对象获取int)对象it1。
int m = it1.intValue();
的System.out.println(M * M); //打印10000
// intValue()是一个Integer类的方法,它返回一个int数据类型。
答案 4 :(得分:0)
parseDouble()
的文档说“返回一个初始化为由指定String表示的值的新double,由double类的valueOf方法执行。”,因此它们应该相同。
答案 5 :(得分:0)
如果要将字符串转换为double数据类型,则大多数选择parseDouble()方法。 请参阅示例代码:
String str = "123.67";
double d = parseDouble(str);
您将获得双倍的值。请参阅tutorialData上的StringToDouble教程。