Java Double parseDouble 方法

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

Java 的 parseDouble() 方法用于将字符串值转换为其等效的 double 值。在数据类型转换中,这是一个重要的方法。在本实验中,我们将学习如何使用 parseDouble() 方法,以及它如何将字符串值转换为其等效的 double 值。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/output("Output") java/BasicSyntaxGroup -.-> java/type_casting("Type Casting") java/StringManipulationGroup -.-> java/strings("Strings") java/ProgrammingTechniquesGroup -.-> java/method_overloading("Method Overloading") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/FileandIOManagementGroup -.-> java/io("IO") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/output -.-> lab-117627{{"Java Double parseDouble 方法"}} java/type_casting -.-> lab-117627{{"Java Double parseDouble 方法"}} java/strings -.-> lab-117627{{"Java Double parseDouble 方法"}} java/method_overloading -.-> lab-117627{{"Java Double parseDouble 方法"}} java/user_input -.-> lab-117627{{"Java Double parseDouble 方法"}} java/exceptions -.-> lab-117627{{"Java Double parseDouble 方法"}} java/io -.-> lab-117627{{"Java Double parseDouble 方法"}} java/string_methods -.-> lab-117627{{"Java Double parseDouble 方法"}} end

实现 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"; // exception occurs here
   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() 方法的 null 值。

代码块:

String str = null;
try {
   double num = Double.parseDouble(str); // exception occurs here
   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

在上面的代码块中,我们将 null 值赋给了字符串变量 str。然后,我们调用了 parseDouble() 方法并将 null 值作为参数传递,这会抛出 NullPointerException。我们使用 try-catch 块捕获了 NullPointerException 并打印了一条自定义消息。

查看完整代码

此时,我们的代码应如下所示:

import java.util.Scanner;

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

      // Example 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");
      }

      // Example 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);

      // Example 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

总结

在本实验中,我们学习了如何使用 parseDouble() 方法将字符串值转换为等效的 double 值。我们还学习了如何处理异常以及在该方法中处理 null 值。在 Java 中处理字符串值和数值计算时,此方法非常有用。