Java.util.Scanner.nextDouble() Method



The java.util.Scanner.nextDouble() method scans the next token of the input as a double. This method will throw InputMismatchException if the next token cannot be translated into a valid double value. If the translation is successful, the scanner advances past the input that matched.


Following is the declaration for java.util.Scanner.nextDouble() method

public double nextDouble()



Return Value

This method returns the double scanned from the input


  • InputMismatchException − if the next token does not match the Float regular expression, or is out of range

  • NoSuchElementException − if the input is exhausted

  • IllegalStateException − if this scanner is closed


The following example shows the usage of java.util.Scanner.nextDouble() method.

package com.tutorialspoint;

import java.util.*;

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

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

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

      // use US locale to be able to identify doubles in the string

      // find the next double token and print it
      // loop for the whole scanner
      while (scanner.hasNext()) {

         // if the next is a double, print found and the double
         if (scanner.hasNextDouble()) {
            System.out.println("Found :" + scanner.nextDouble());

         // if a double is not found, print "Not Found" and the token
         System.out.println("Not Found :" +;

      // close the scanner

Let us compile and run the above program, this will produce the following result −

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