The nextBigInteger(radix) method of java.util.Scanner class scans the next token of the input as a BigInteger. If the translation is successful, the scanner advances past the input that matched. If the parameter radix is not passed, then it behaves similarly as nextBigInteger(radix) where the radix is assumed to be the default radix.
Syntax:
public BigInteger nextBigInteger()
Parameters: The function accepts a parameter radix which is used to BigIntegererpret the token as a BigInteger value.
Return Value: This function returns the BigInteger scanned from the input.
Exceptions: The function throws three exceptions as described below:
- InputMismatchException: if the next token does not matches the BigIntegereger regular expression, 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:
// Java program to illustrate the // nextBigInteger() 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 BigInteger,             // prBigInteger found and the BigInteger             if (scanner.hasNextBigInteger()) {                 System.out.println( "Found BigInteger value : "                                    + scanner.nextBigInteger());             }               // if no BigInteger is found,             // prBigInteger "Not Found:" and the token             else {                 System.out.println( "Not found BigInteger value : "                                    + scanner.next());             }         }         scanner.close();     } } |
Not found BigInteger value :G fg Found BigInteger value : 9 Not found BigInteger value : + Found BigInteger value : 6 Not found BigInteger value : = Not found BigInteger value : 12.0
Program 2:
// Java program to illustrate the // nextBigInteger() method of Scanner class in Java // with 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 BigInteger,             // prBigInteger found and the BigInteger             if (scanner.hasNextBigInteger()) {                 System.out.println( "Found BigInteger value : "                                    + scanner.nextBigInteger( 12 ));             }               // if no BigInteger is found,             // prBigInteger "Not Found:" and the token             else {                 System.out.println( "Not found BigInteger value : "                                    + scanner.next());             }         }         scanner.close();     } } |
Not found BigInteger value : Gfg Found BigInteger value : 9 Not found BigInteger value : + Found BigInteger value : 6 Not found BigInteger value : = Not found BigInteger value : 12.0
Program 3: To demonstrate InputMismatchException
// Java program to illustrate the // nextBigInteger() 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 BigInteger,                 // prBigInteger found and the BigInteger                 // since the value 60 is out of range                 // it throws an exception                   System.out.println( "Next BigInteger value :"                                    + scanner.nextBigInteger());             }             scanner.close();         }         catch (Exception e) {             System.out.println( "Exception thrown: " + e);         }     } } |
Exception thrown: java.util.InputMismatchException
Program 4: To demonstrate NoSuchElementException
// Java program to illustrate the // nextBigInteger() 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 BigInteger value             // more times than the scanner             // Hence it will throw exception             for ( int i = 0 ; i < 5 ; i++) {                   // if the next is a BigInteger,                 // prBigInteger found and the BigInteger                 if (scanner.hasNextBigInteger()) {                     System.out.println( "Found BigInteger value :"                                        + scanner.nextBigInteger());                 }                   // if no BigInteger is found,                 // prBigInteger "Not Found:" and the token                 else {                     System.out.println( "Not found BigInteger value :"                                        + scanner.next());                 }             }             scanner.close();         }         catch (Exception e) {             System.out.println( "Exception thrown: " + e);         }     } } |
Not found BigInteger value :Gfg Exception thrown: java.util.NoSuchElementException
Program 5: To demonstrate IllegalStateException
// Java program to illustrate the // nextBigInteger() 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 BigInteger value" );               while (scanner.hasNext()) {                   // if the next is a BigInteger,                 // prBigInteger found and the BigInteger                 if (scanner.hasNextBigInteger()) {                     System.out.println( "Found BigInteger value :"                                        + scanner.nextBigInteger());                 }                   // if no BigInteger is found,                 // prBigInteger "Not Found:" and the token                 else {                     System.out.println( "Not found BigInteger value :"                                        + scanner.next());                 }             }         }         catch (Exception e) {             System.out.println( "Exception thrown: " + e);         }     } } |
Scanner Closed Trying to get next BigInteger value Exception thrown: java.lang.IllegalStateException: Scanner closed
Reference: https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextBigInteger(int)