Java Scanner nextDouble() 方法



描述

Java Scanner nextDouble() 方法将输入的下一个标记扫描为双精度浮点数。如果下一个标记无法转换为有效的双精度浮点数,则此方法将抛出 InputMismatchException 异常。如果转换成功,扫描程序将跳过匹配的输入。

声明

以下是 java.util.Scanner.nextDouble() 方法的声明

public double nextDouble()

参数

返回值

此方法返回从输入扫描的双精度浮点数

异常

  • InputMismatchException − 如果下一个标记与浮点数正则表达式不匹配,或超出范围

  • NoSuchElementException − 如果输入已耗尽

  • IllegalStateException − 如果此扫描程序已关闭

在字符串上使用 Scanner 获取下一个标记作为双精度浮点数的示例

以下示例演示了如何使用 Java Scanner nextDouble() 方法将下一个标记扫描为双精度浮点数。我们使用给定的字符串创建了一个扫描程序对象。然后我们检查每个标记是否为双精度浮点数,如果不是,则打印“未找到”以及扫描到的标记。最后,使用 close() 方法关闭扫描程序。

package com.tutorialspoint;

import java.util.Scanner;

public class ScannerDemo {
   public static void main(String[] args) {

      String s = "Hello World! 3 + 3.0 = 6";

      // create a new scanner with the specified String Object
      Scanner scanner = new Scanner(s);

      while (scanner.hasNext()) {
         
         // check if the scanner's next token is a Double
         if(scanner.hasNextDouble()){
            // print what is scanned
            System.out.println("Found: " + scanner.nextDouble());		 
         } else {
            System.out.println("Not Found: " + scanner.next());
         }
      }

      // close the scanner
      scanner.close();
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

Not Found: Hello
Not Found: World!
Found: 3.0
Not Found: +
Found: 3.0
Not Found: =
Found: 6.0

在用户输入上使用 Scanner 获取下一个标记作为双精度浮点数的示例

以下示例演示了如何使用 Java Scanner nextDouble() 方法将下一个标记扫描为双精度浮点数。我们使用 System.in 类创建了一个扫描程序对象。然后我们检查每个标记是否为双精度浮点数,如果不是,则打印“未找到”以及扫描到的标记。最后,使用 close() 方法关闭扫描程序。

package com.tutorialspoint;

import java.util.Scanner;

public class ScannerDemo {
   public static void main(String[] args) {

      // create a new scanner with System Input
      Scanner scanner = new Scanner(System.in);
         
      while (scanner.hasNext()) {
         
         // check if the scanner's next token is a Double
         if(scanner.hasNextDouble()){
            // print what is scanned
            System.out.println("Found: " + scanner.nextDouble());		 
         } else {
            System.out.println("Not Found: " + scanner.next());
         }
      }

      // close the scanner
      scanner.close();
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:(我们输入了 3.0。)

3.0
Found: 3.0

在属性文件上使用 Scanner 获取下一个标记作为双精度浮点数的示例

以下示例演示了如何使用 Java Scanner nextDouble() 方法将下一个标记扫描为双精度浮点数。我们使用文件 properties.txt 创建了一个扫描程序对象。然后我们检查每个标记是否为双精度浮点数,如果不是,则打印“未找到”以及扫描到的标记。最后,使用 close() 方法关闭扫描程序。

package com.tutorialspoint;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerDemo {
   public static void main(String[] args) throws FileNotFoundException {

      // create a new scanner with a file as input
      Scanner scanner = new Scanner(new File("properties.txt"));
         
      while (scanner.hasNext()) {
         
         // check if the scanner's next token is a Double
         if(scanner.hasNextDouble()){
            // print what is scanned
            System.out.println("Found: " + scanner.nextDouble());		 
         } else {
            System.out.println("Not Found: " + scanner.next());
         }
      }

      // close the scanner
      scanner.close();
   }
}

假设我们在 CLASSPATH 中有一个名为 properties.txt 的文件,其内容如下。此文件将用作我们示例程序的输入:

Hello World! 3 + 3.0 = 6

输出

让我们编译并运行以上程序,这将产生以下结果:

Not Found: Hello
Not Found: World!
Found: 3.0
Not Found: +
Found: 3.0
Not Found: =
Found: 6.0
java_util_scanner.htm
广告