Scanner nextBigDecimal() method in Java with Examples

The nextBigDecimal() method of java.util.Scanner class scans the next token of the input as a BigDecimal. If the next token matches the Decimal regular expression defined above then the token is converted into a BigDecimal value as if by removing all group separators, mapping non-ASCII digits into ASCII digits via the Character.digit, and passing the resulting string to the BigDecimal(String) constructor.

Syntax:

public BigDecimal nextBigDecimal()

Parameters: The function does not accepts any parameter.

Return Value: This function returns the BigDecimal scanned from the input.

Exceptions: The function throws three exceptions as described below:

  • InputMismatchException: if the next token is not a valid BigDecimal or is out of range
  • NoSuchElementException: throws if input is exhausted
  • IllegalStateException: throws if this scanner is closed

Below programs illustrate the above function:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to illustrate the
// nextBigDecimal() method of Scanner class in Java
// without parameter
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        String s = "Gfg 9 + 6 = 12.0";
  
        // create a new scanner
        // with the specified String Object
        Scanner scanner = new Scanner(s);
  
        while (scanner.hasNext()) {
  
            // if the next is a BigDecimal,
            // print found and the BigDecimal
            if (scanner.hasNextBigDecimal()) {
                System.out.println("Found BigDecimal value :"
                                   + scanner.nextBigDecimal());
            }
  
            // if no BigDecimal is found,
            // print "Not Found:" and the token
            else {
                System.out.println("Not found BigDecimal() value :"
                                   + scanner.next());
            }
        }
        scanner.close();
    }
}

chevron_right


Output:

Not found BigDecimal() value :Gfg
Found BigDecimal value :9
Not found BigDecimal() value :+
Found BigDecimal value :6
Not found BigDecimal() value :=
Found BigDecimal value :12.0

Program 2: To demonstrate InputMismatchException

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to illustrate the
// nextBigDecimal() method of Scanner class in Java
// InputMismatchException
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            String s = "Gfg 9 + 6 = 12.0";
  
            // create a new scanner
            // with the specified String Object
            Scanner scanner = new Scanner(s);
  
            while (scanner.hasNext()) {
  
                // if the next is a BigDecimal
                // print found and the BigDecimal
                // since the value 60 is out of range
                // it throws an exception
  
                System.out.println("Next BigDecimal value :"
                                   + scanner.nextBigDecimal());
            }
            scanner.close();
        }
        catch (Exception e) {
            System.out.println("Exception thrown: " + e);
        }
    }
}

chevron_right


Output:

Exception thrown: java.util.InputMismatchException

Program 3: To demonstrate NoSuchElementException

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to illustrate the
// nextBigDecimal() method of Scanner class in Java
// NoSuchElementException
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            String s = "Gfg";
  
            // create a new scanner
            // with the specified String Object
            Scanner scanner = new Scanner(s);
  
            // Trying to get the next BigDecimal value
            // more times than the scanner
            // Hence it will throw exception
            for (int i = 0; i < 5; i++) {
  
                // if the next is a BigDecimal,
                // print found and the BigDecimal
                if (scanner.hasNextBigDecimal()) {
                    System.out.println("Found BigDecimal value :"
                                       + scanner.nextBigDecimal());
                }
  
                // if no BigDecimal is found,
                // print "Not Found:" and the token
                else {
                    System.out.println("Not found BigDecimal value :"
                                       + scanner.next());
                }
            }
            scanner.close();
        }
        catch (Exception e) {
            System.out.println("Exception thrown: " + e);
        }
    }
}

chevron_right


Output:

Not found BigDecimal value :Gfg
Exception thrown: java.util.NoSuchElementException

Program 4: To demonstrate IllegalStateException

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to illustrate the
// nextBigDecimal() method of Scanner class in Java
// IllegalStateException
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv)
        throws Exception
    {
  
        try {
  
            String s = "Gfg 9 + 6 = 12.0";
  
            // create a new scanner
            // with the specified String Object
            Scanner scanner = new Scanner(s);
  
            // close the scanner
            scanner.close();
            System.out.println("Scanner Closed");
  
            System.out.println("Trying to get "
                               + "next BigDecimal value");
  
            while (scanner.hasNext()) {
  
                // if the next is a BigDecimal,
                // print found and the BigDecimal
                if (scanner.hasNextBigDecimal()) {
                    System.out.println("Found BigDecimal value :"
                                       + scanner.nextBigDecimal());
                }
  
                // if no BigDecimal is found,
                // print "Not Found:" and the token
                else {
                    System.out.println("Not found BigDecimal value :"
                                       + scanner.next());
                }
            }
        }
        catch (Exception e) {
            System.out.println("Exception thrown: " + e);
        }
    }
}

chevron_right


Output:

Scanner Closed
Trying to get next BigDecimal value
Exception thrown: java.lang.IllegalStateException: Scanner closed

Reference: https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextBigDecimal()



My Personal Notes arrow_drop_up

The function of education is to teach one to think intensively and to think critically

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.