Java
 Computer >> コンピューター >  >> プログラミング >> Java

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 および StringBufferappend() メソッドは、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()
  • 文字列連結の処理の中で変換したい場合StringBuilderStringBufferappend()

いずれの方法も標準APIだけで完結するため、用途や可読性に応じて最適なものを選択しましょう。

  1. Javaで文字列をInputStreamオブジェクトに変換する方法

    ByteArrayInputStreamクラスとは ByteArrayInputStreamは、InputStreamクラスのサブクラスであり、ストリームから読み取り可能なバイトデータを内部バッファに保持するクラスです。このクラスを利用することで、メモリ上のデータをあたかも入力ストリームであるかのように扱うことができます。 Javaで文字列(String)をInputStreamオブジェクトに変換したい場合、このByteArrayInputStreamクラスを使うのが最もシンプルな方法です。コンストラクタにはバイト配列を渡す必要があるため、StringクラスのgetBytes()メソッドを呼

  2. 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