如何在Java中检查字符串是否可以解析为double类型?


使用 parseDouble() 方法

**parseDouble()** 方法是 **java.lang.Double** 类的方法,它接受一个字符串值,对其进行解析,并返回该字符串的双精度数值。

如果传递空值给此方法,它会抛出 NullPointerException 异常;如果此方法无法将给定的字符串解析为双精度数值,它会抛出 NumberFormatException 异常。

因此,要了解某个特定字符串是否可以解析为 double 类型,可以将其传递给 parseDouble 方法,并将此行代码用 try-catch 块包裹。如果发生异常,则表示给定的字符串无法解析为 double 类型。

示例

 在线演示

import java.util.Scanner;
public class ParsableToDouble {
   public static void main(String args[]) {
      try {
         Scanner sc = new Scanner(System.in);
         System.out.println("Enter a string value: ");
         String str = sc.next();
         Double doub = Double.parseDouble(str);
         System.out.println("Value of the variable: "+doub);
      }catch (NumberFormatException ex) {
         System.out.println("Given String is not parsable to double");
      }
   }
}

输出

Enter a string value:
2245g
Given String is not parsable to double

使用 valueOf() 方法

类似地,Double 类的 **valueOf()** 方法(也)接受一个字符串值作为参数,修剪多余的空格并返回字符串表示的双精度数值。如果给定的值无法解析为 double 类型,此方法会抛出 NumberFormatException 异常。

示例

 在线演示

import java.util.Scanner;
public class ParsableToDouble {
   public static void main(String args[]) {
      try {
         Scanner sc = new Scanner(System.in);
         System.out.println("Enter a string value: ");
         String str = sc.next();
         Double doub = Double.valueOf(str);
         System.out.println("Value of the variable: "+doub);
      }catch (NumberFormatException ex) {
         System.out.println("Given String is not parsable to double");
      }
   }
}

输出

Enter a string value:
2245g
Given String is not parsable to double

使用 Double 类的构造函数

Double 类的一个构造函数接受一个字符串作为参数,并构造一个(Double)对象,该对象封装了给定的值。如果传递给此构造函数的字符串无法解析为 Double 类型,则会抛出 NumberFormatException 异常。

示例

 在线演示

import java.util.Scanner;
public class ParsableToDouble {
   public static void main(String args[]) {
      try {
         Scanner sc = new Scanner(System.in);
         System.out.println("Enter a string value: ");
         String str = sc.next();
         Double doub = new Double(str);
         System.out.println("Value of the variable: "+doub);
      }catch (NumberFormatException ex) {
         System.out.println("Given String is not parsable to double");
      }
   }
}

输出

Enter a string value:
2245g
Given String is not parsable to double

更新于: 2019年10月11日

5K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告