JavaでDoubleをStringに変換する4つの方法
Javaでは、プリミティブ型の double やラッパークラスの Double の値を、文字列(String)に変換するための方法がいくつか用意されています。この記事では、代表的な4つの手法について、コード例と実行結果とあわせてわかりやすく解説します。
1. DoubleクラスのtoString()メソッド
toString() は、現在のDoubleオブジェクトが保持している値を文字列形式で返すメソッドです。Double値をStringに変換するには、以下の手順を実行します。
- 必要なdouble値をDouble型の参照変数に代入する(自動的にオートボクシングが行われます)。
- toString() メソッドを呼び出して文字列に変換する。
ポイント: staticメソッドである Double.toString(double) を使えば、Doubleオブジェクトを明示的に生成することなく、double値から直接文字列を取得することもできます。
コード例
import java.util.Scanner;
public class ConversionOfDouble {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a double value:");
Double d = sc.nextDouble();
String result = d.toString();
System.out.println("The result is: " + result);
System.out.println(Double.toString(d));
}
}
実行結果
Enter a double value: 2548.2325 The result is: 2548.2325 2548.2325
2. StringクラスのvalueOf()メソッド
String.valueOf() は、char、char配列、double、float、int、long、Objectなど、さまざまな型の値を引数として受け取り、その文字列表現を返すstaticメソッドです。Double値をStringに変換するには、以下の手順を実行します。
- double値を取得する。
- その値を引数として valueOf() に渡し、戻り値として文字列を受け取る。
コード例
import java.util.Scanner;
public class ConversionOfDouble {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a double value:");
double d = sc.nextDouble();
String result = String.valueOf(d);
System.out.println("The result is: " + result);
}
}
実行結果
Enter a double value: 2548.2325 The result is: 2548.2325
3. Stringクラスのformat()メソッド
String.format() は、フォーマット文字列と可変長引数(varargs)を受け取り、指定した書式に従って整形された文字列を返すメソッドです。小数点以下の桁数など、出力形式を細かく制御したい場合に特に便利です。Double値をStringに変換するには、以下の手順を実行します。
- double値を取得する。
- フォーマット文字列として「%f」を、変換対象のdouble値とともに渡して format() を呼び出す。
注意: 「%f」はデフォルトで小数点以下6桁を出力します。桁数を制御したい場合は、「%.2f」のように精度を指定してください。
コード例
import java.util.Scanner;
public class ConversionOfDouble {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a double value:");
double d = sc.nextDouble();
String result = String.format("%f", d);
System.out.println("The result is: " + result);
}
}
実行結果
Enter a double value: 2548.2325 The result is: 2548.232500
4. StringBuilder/StringBufferのappend()メソッド
StringBuilder および StringBuffer の append() メソッドは、boolean、char、char配列、double、float、int、long、Stringなどの値を引数として受け取り、現在のオブジェクトの末尾に追加します。文字列を組み立てる過程で数値を連結したい場合に有効です。Double値をStringに変換するには、以下の手順を実行します。
- double値を取得する。
- append() メソッドを使って、StringBufferオブジェクトに値を追加する。
- toString() メソッドを呼び出し、StringBufferオブジェクトの内容を文字列として取り出す。
コード例
import java.util.Scanner;
public class ConversionOfDouble {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a double value:");
double d = sc.nextDouble();
StringBuffer sb = new StringBuffer();
sb.append(d);
String result = sb.toString();
System.out.println("The result is: " + result);
}
}
実行結果
Enter a double value: 2548.2325 The result is: 2548.2325
まとめ:使い分けの目安
- シンプルに変換したい場合 →
Double.toString()またはString.valueOf() - 小数点以下の桁数などを制御したい場合 →
String.format() - 文字列連結の処理の中で変換したい場合 →
StringBuilder/StringBufferのappend()
いずれの方法も標準APIだけで完結するため、用途や可読性に応じて最適なものを選択しましょう。
-
Javaで文字列をInputStreamオブジェクトに変換する方法
ByteArrayInputStreamクラスとは ByteArrayInputStreamは、InputStreamクラスのサブクラスであり、ストリームから読み取り可能なバイトデータを内部バッファに保持するクラスです。このクラスを利用することで、メモリ上のデータをあたかも入力ストリームであるかのように扱うことができます。 Javaで文字列(String)をInputStreamオブジェクトに変換したい場合、このByteArrayInputStreamクラスを使うのが最もシンプルな方法です。コンストラクタにはバイト配列を渡す必要があるため、StringクラスのgetBytes()メソッドを呼
-
JavaでCLOB型を文字列(String)に変換する方法をわかりやすく解説
CLOB(Character Large Object)は、SQLの組み込みデータ型の一つで、大量のテキストデータを格納するために使用されます。このデータ型を利用すると、最大2,147,483,647文字までのデータを保存することが可能です。 JDBC APIのjava.sql.Clobインターフェースが、このCLOBデータ型を表現します。なお、JDBCにおけるClobオブジェクトはSQLロケーター(locator)を使って実装されているため、実際のデータそのものではなく、SQL CLOBへの論理ポインターを保持している点に注意してください。 MySQLデータベースでは、TINYTEXT、T