データ型に変換String
したい。またはDouble
を使用する必要があるかどうかわかりません。parseDouble
valueOf
これら2つの方法の違いは何ですか?
データ型に変換String
したい。またはDouble
を使用する必要があるかどうかわかりません。parseDouble
valueOf
これら2つの方法の違いは何ですか?
parseDouble
文字列の値を含むプリミティブ double を返します。
クラス Double の valueOf メソッドによって実行されるように、指定された String によって表される値に初期化された新しい double を返します。
valueOf
Double インスタンスを返します。すでにキャッシュされている場合は、キャッシュされた同じインスタンスを取得します。
指定された double 値を表す Double インスタンスを返します。新しい Double インスタンスが必要ない場合、このメソッドは、頻繁に要求される値をキャッシュすることにより、スペースと時間のパフォーマンスが大幅に向上する可能性が高いため、通常、コンストラクター Double(double) よりも優先して使用する必要があります。
新しい Double オブジェクト インスタンスを作成するオーバーヘッドを回避するには、通常、次を使用する必要があります。valueOf
Double.parseDouble(String)
double
プリミティブ型
を返します。Double.valueOf(String)
タイプのラッパーオブジェクトを返しますDouble
。
たとえば、次のようになります。
double d = Double.parseDouble("1");
Double d = Double.valueOf("1");
さらに、valueOf(...)
オーバーロードされたメソッドです。これには 2 つのバリアントがあります。
一方parseDouble
、次のシグネチャを持つ単一のメソッドです。
どちらも String を double 値に変換しますが、parseDouble() メソッドがプリミティブ double 値を返すのに対して、valueOf() メソッドはさらにプリミティブ double をプリミティブ double 値を含む Double ラッパー クラス オブジェクトに変換します。
String からプリミティブ double への変換では、String の値がプリミティブ double に変換できない場合、NFE(NumberFormatException) がスローされることがあります。
文字列を double データ型に変換する場合は、ほとんどが parseDouble() メソッドを選択します。サンプル コードを参照してください。
String str = "123.67";
double d = parseDouble(str);
double で値を取得します。tutorialDataの StringToDouble チュートリアルを参照してください。
のドキュメントにparseDouble()
は、「クラス Double の valueOf メソッドによって実行されるように、指定された文字列によって表される値に初期化された新しい double を返す」と記載されているため、それらは同一である必要があります。