Java Scanner nextDouble() Method

📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.

🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.

▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

The nextDouble() method in Java, part of the java.util.Scanner class, is used to retrieve the next token from the input as a double value. This method is useful for reading and processing floating-point values from the input.

Table of Contents

  1. Introduction
  2. nextDouble() Method Syntax
  3. Understanding nextDouble()
  4. Examples
    • Basic Usage
    • Handling Input Errors
  5. Real-World Use Case
  6. Conclusion

Introduction

The nextDouble() method returns the next token from the scanner's input as a double. This method is useful when you need to read and process floating-point values, which represent decimal numbers.

nextDouble() Method Syntax

The syntax for the nextDouble() method is as follows:

public double nextDouble() 

Parameters:

  • This method does not take any parameters.

Returns:

  • The next token as a double value.

Throws:

  • InputMismatchException: If the next token does not match the double regular expression, or is out of range.
  • NoSuchElementException: If no more tokens are available.
  • IllegalStateException: If the scanner is closed.

Understanding nextDouble()

The nextDouble() method retrieves the next token and converts it to a double. If the token cannot be interpreted as a double, an InputMismatchException is thrown.

Examples

Basic Usage

To demonstrate the basic usage of nextDouble(), we will create a Scanner object and use it to read double values from a string.

Example

import java.util.Scanner; public class NextDoubleExample { public static void main(String[] args) { String input = "10.5 20.5 30.5"; // Create Scanner object in try-with-resources to ensure it closes automatically try (Scanner scanner = new Scanner(input)) { while (scanner.hasNextDouble()) { double value = scanner.nextDouble(); System.out.println("Double value: " + value); } } // Scanner is automatically closed here } } 

Output:

Double value: 10.5 Double value: 20.5 Double value: 30.5 

Handling Input Errors

This example shows how to handle errors when the input token cannot be interpreted as a double.

Example

import java.util.InputMismatchException; import java.util.Scanner; public class HandleInputErrorsExample { public static void main(String[] args) { String input = "10.5 abc 20.5"; // Create Scanner object in try-with-resources to ensure it closes automatically try (Scanner scanner = new Scanner(input)) { while (scanner.hasNext()) { try { double value = scanner.nextDouble(); System.out.println("Double value: " + value); } catch (InputMismatchException e) { System.out.println("Invalid input: " + scanner.next()); } } } // Scanner is automatically closed here } } 

Output:

Double value: 10.5 Invalid input: abc Double value: 20.5 

Real-World Use Case

Reading Configuration Data

In real-world applications, the nextDouble() method can be used to read and process floating-point configuration data from a file.

Example

import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ConfigParser { public static void main(String[] args) { try (Scanner scanner = new Scanner(new File("config.txt"))) { while (scanner.hasNext()) { try { double value = scanner.nextDouble(); System.out.println("Configuration value: " + value); } catch (InputMismatchException e) { System.out.println("Invalid input: " + scanner.next()); } } } catch (FileNotFoundException e) { System.out.println("File not found: " + e.getMessage()); } // Scanner is automatically closed here } } 

Output (Assuming config.txt contains valid and invalid double values):

Configuration value: 10.5 Invalid input: abc Configuration value: 20.5 ... 

Conclusion

The Scanner.nextDouble() method is used to retrieve the next token from the input as a double value. This method is particularly useful for applications requiring floating-point input values. By understanding and using this method, you can efficiently parse and handle double input data. Always close the Scanner using try-with-resources to ensure proper resource management.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare