Java の Double 型の parseDouble メソッド

JavaBeginner
オンラインで実践に進む

はじめに

Java のparseDouble()メソッドは、文字列をその対応する double 型の値に変換するために使用されます。これは、データ型変換に関して重要なメソッドです。この実験では、parseDouble()メソッドの使い方と、文字列をその対応する double 型の値に変換する方法を学びます。

parseDouble() メソッドの構文を実装する

Java プログラムで次の parseDouble() メソッドの構文を実装します。

public static double parseDouble(String s) throws NumberFormatException

parseDouble() メソッドを使用して文字列を double 型の値に変換する

このステップでは、parseDouble() メソッドを使って文字列をその対応する double 型の値に変換します。

コードブロック:

String str = "8.97";
double num = Double.parseDouble(str);
System.out.println("Double value of "+str+" is "+num);

これは次のように出力されます:

Double value of 8.97 is 8.97

上のコードブロックでは、文字列変数 str を作成してそれに "8.97" の値で初期化しました。次に、parseDouble() メソッドを呼び出して、文字列変数を引数として渡し、返された double 型の値を double 型変数 num に代入しました。最後に、double 型変数を出力しました。

発生する可能性のある NumberFormatException をキャッチする

このステップでは、予期しない問題を回避するために NumberFormatException をキャッチします。

コードブロック:

try {
   String str = "not a number"; // ここで例外が発生します
   double num = Double.parseDouble(str);
   System.out.println("Double value of "+str+" is "+num);
} catch(NumberFormatException e) {
   System.out.println("Error: "+e.getMessage()+" is not a valid double");
}

これは次のように出力されます:

Error: For input string: "not a number" is not a valid double

上のコードブロックでは、Double.parseDouble() メソッドに対して "not a number" という文字列が渡されていますが、これは有効な double 型の値ではありません。parseDouble() メソッドは NumberFormatException をスローするため、try-catch ブロックを使ってプログラムで発生する可能性のある例外をキャッチしました。

ユーザー入力を受け付ける

このステップでは、Scanner クラスを使ってユーザー入力を受け付け、parseDouble() メソッドを使ってそれを double 型の値に解析します。

コードブロック:

Scanner input = new Scanner(System.in);
System.out.print("Enter a number: ");
String str = input.next();
double num = Double.parseDouble(str);
System.out.println("Double value of "+str+" is "+num);

これは次のように出力されます:

Enter a number: 9.56
Double value of 9.56 is 9.56

上のコードブロックでは、ユーザー入力を受け付けるために Scanner クラスのインスタンスを作成しました。next() メソッドを使ってユーザー入力を文字列として読み取り、それを parseDouble() メソッドに渡して返された値を double 型変数 num に代入しました。最後に、double 型変数を出力しました。

null 値の処理

このステップでは、parseDouble() メソッドに渡されるヌル値を処理します。

コードブロック:

String str = null;
try {
   double num = Double.parseDouble(str); // ここで例外が発生します
   System.out.println(num);
} catch (NullPointerException e) {
   System.out.println("Error: "+e.getMessage()+" - It's not possible to convert null to double value");
}

これは次のように出力されます:

Error: null - It's not possible to convert null to double value

上のコードブロックでは、文字列変数 str にヌル値を代入しました。次に、parseDouble() メソッドを呼び出してヌル値を引数として渡し、これにより NullPointerException がスローされます。私たちは try-catch ブロックを使って NullPointerException をキャッチし、カスタムメッセージを出力しました。

コード全体を見直す

この時点で、私たちのコードは次のようになっているはずです。

import java.util.Scanner;

public class JavaDoubleParseDoubleMethod {
   public static void main(String[] args) {
      // 例 1
      String str = "8.97";
      double num = Double.parseDouble(str);
      System.out.println("Double value of "+str+" is "+num);

      // 例 2
      try {
         String str2 = "not a number";
         double num2 = Double.parseDouble(str2);
         System.out.println("Double value of "+str2+" is "+num2);
      } catch(NumberFormatException e) {
         System.out.println("Error: "+e.getMessage()+" is not a valid double");
      }

      // 例 3
      Scanner input = new Scanner(System.in);
      System.out.print("Enter a number: ");
      String str3 = input.next();
      double num3 = Double.parseDouble(str3);
      System.out.println("Double value of "+str3+" is "+num3);

      // 例 4
      String str4 = null;
      try {
         double num4 = Double.parseDouble(str4);
         System.out.println(num4);
      } catch (NullPointerException e) {
         System.out.println("Error: "+e.getMessage()+" - It's not possible to convert null to double value");
      }
   }
}

Java プログラムをコンパイルして実行する

Java プログラムをコンパイルして実行するには、次のコマンドを実行します。

cd ~/project
javac JavaDoubleParseDoubleMethod.java
java JavaDoubleParseDoubleMethod

これにより Java プログラムが実行され、次のように出力されます。

Double value of 8.97 is 8.97
Error: For input string: "not a number" is not a valid double
Enter a number: 9.56
Double value of 9.56 is 9.56
Error: null - It's not possible to convert null to double value

まとめ

この実験では、文字列をその相当する double 型の値に変換するためにparseDouble()メソッドをどのように使用するかを学びました。また、メソッド内で例外を処理し、ヌル値を処理する方法も学びました。このメソッドは、Java で文字列を扱い、数値計算を行う際に非常に役立ちます。