Javaで文字列をDoubleに変換
1. 概要
このチュートリアルでは、JavaでStringをdoubleに変換する多くの方法について説明します。
2. Double.parseDouble
Double。parseDouble メソッドを使用して、Stringをdoubleに変換できます。
assertEquals(1.23, Double.parseDouble("1.23"), 0.000001);
3. Double.valueOf
同様に、 Double.valueOf メソッドを使用して、StringをboxedDoubleに変換できます。
assertEquals(1.23, Double.valueOf("1.23"), 0.000001);
Double.valueOfの戻り値はボックス化されたDoubleであることに注意してください。 Java 5以降、このボックス化された Double は、コンパイラによって必要に応じてプリミティブdoubleに変換されます。
一般に、は、コンパイラが自動アンボックスを実行する必要がないため、Double.parseDoubleを優先する必要があります。
4. DecimalFormat.parse
doubleを表すStringの形式がより複雑な場合は、DecimalFormatを使用できます。
たとえば、数値以外の記号を削除せずに、10進数ベースの通貨値を変換できます。
DecimalFormat format = new DecimalFormat("\u00A4#,##0.00");
format.setParseBigDecimal(true);
BigDecimal decimal = (BigDecimal) format.parse("-$1,000.57");
assertEquals(-1000.57, decimal.doubleValue(), 0.000001);
Double.valueOf と同様に、DecimalFormat.parseメソッドはNumberを返します。これは、doubleValueを使用してプリミティブdoubleに変換できます。 ] 方法。 さらに、 setParseBigDecimal メソッドを使用して、DecimalFormat.parseにBigDecimalを返すように強制します。
通常、 DecimalFormat は必要以上に高度であるため、代わりにDouble.parseDoubleまたはDouble.valueOfを使用する必要があります。
DecimalFormat の詳細については、DecimalFormatの実用ガイドを確認してください。
5. 無効な変換
Javaは、無効な数値Stringを処理するための統一されたインターフェースを提供します。
特に、 Double.parseDouble、Double.valueOf、およびDecimalFormat.parseはNullPointerExceptionをスローします私たちが通過するとき
同じく、 Double.parseDoubleとDouble.valueOfはNumberFormatExceptionをスローします解析できない無効な文字列をダブル (そのような & )。
最後に、無効な String。を渡すと、DecimalFormat.parseはParseExceptionをスローします。
6. 非推奨の変換の回避
Java 9より前では、 Double をインスタンス化することにより、Stringからボックス化されたDoubleを作成できました。
new Double("1.23");
バージョン9の時点で、Javaはこのメソッドを正式に非推奨にしました。
7. 結論
結論として、Javaは、Stringをdouble値に変換するための複数のメソッドを提供します。
一般に、ボックス化された Double が必要でない限り、Double.parseDoubleを使用することをお勧めします。
例を含むこの記事のソースコードは、GitHubのにあります。