Java Scanner nextBigDecimal() 方法



描述

java Scanner nextBigDecimal() 方法将输入的下一个标记扫描为 BigDecimal。如果下一个标记与上面定义的十进制正则表达式匹配,则该标记将转换为 BigDecimal 值,方法是移除所有组分隔符,通过 Character.digit 将非 ASCII 数字映射到 ASCII 数字,并将结果字符串传递给 BigDecimal(String) 构造函数。

声明

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

public BigDecimal nextBigDecimal()

参数

返回值

此方法返回从输入中扫描的 BigDecimal

异常

  • InputMismatchException − 如果下一个标记与十进制正则表达式不匹配,或者超出范围

  • NoSuchElementException − 如果输入已用尽

  • IllegalStateException − 如果此扫描器已关闭

在字符串上的 Scanner 上获取下一个标记作为 BigDecimal 的示例

以下示例演示了如何使用 Java Scanner nextBigDecimal() 方法将下一个标记扫描为 BigDecimal。我们使用给定的字符串创建了一个扫描器对象。然后我们检查每个标记是否为 BigDecimal,并打印出来,否则打印“未找到”以及扫描的标记。最后,使用 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 BigDecimal
         if(scanner.hasNextBigDecimal()){
            // print what is scanned
            System.out.println("Found: " + scanner.nextBigDecimal());		 
         } else {
            System.out.println("Not Found: " + scanner.next());
         }
      }

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

输出

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

Not Found: Hello
Not Found: World!
Found: 3
Not Found: +
Found: 3.0
Not Found: =
Found: 6

在用户输入上的 Scanner 上获取下一个标记作为 BigDecimal 的示例

以下示例演示了如何使用 Java Scanner nextBigDecimal() 方法将下一个标记扫描为 BigDecimal。我们使用 System.in 类创建了一个扫描器对象。然后我们检查每个标记是否为 BigDecimal,并打印出来,否则打印“未找到”以及扫描的标记。最后,使用 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 BigDecimal
         if(scanner.hasNextBigDecimal()){
            // print what is scanned
            System.out.println("Found: " + scanner.nextBigDecimal());		 
         } else {
            System.out.println("Not Found: " + scanner.next());
         }
      }

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

输出

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

3.0
Found: 3.0

在属性文件上的 Scanner 上获取下一个标记作为 BigDecimal 的示例

以下示例演示了如何使用 Java Scanner nextBigDecimal() 方法将下一个标记扫描为 BigDecimal。我们使用文件 properties.txt 创建了一个扫描器对象。然后我们检查每个标记是否为 BigDecimal,并打印出来,否则打印“未找到”以及扫描的标记。最后,使用 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 BigDecimal
         if(scanner.hasNextBigDecimal()){
            // print what is scanned
            System.out.println("Found: " + scanner.nextBigDecimal());		 
         } else {
            System.out.println("Not Found: " + scanner.next());
         }
      }

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

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

Hello World! 3 + 3.0 = 6

输出

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

3
3.0
6
java_util_scanner.htm
广告