Java Scanner nextLine() Method

The nextLine() method in Java, part of the java.util.Scanner class, is used to advance the scanner past the current line and return the input that was skipped. This method is useful for reading entire lines of text from the input.

Table of Contents

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

Introduction

The nextLine() method returns the rest of the current line, excluding any line separator at the end. It is useful when you need to read and process full lines of text.

nextLine() Method Syntax

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

public String nextLine()

Parameters:

  • This method does not take any parameters.

Returns:

  • The rest of the current line as a String, excluding any line separator at the end.

Throws:

  • NoSuchElementException: If no line was found.
  • IllegalStateException: If the scanner is closed.

Understanding nextLine()

The nextLine() method advances the scanner past the current line and returns the input that was skipped. This method reads the entire line, including any spaces and special characters until it encounters a line separator.

Examples

Basic Usage

To demonstrate the basic usage of nextLine(), we will create a Scanner object and use it to read lines of text from a string.

Example

import java.util.Scanner;

public class NextLineExample {
    public static void main(String[] args) {
        String input = "Hello, world!\nWelcome to Java programming.\nEnjoy coding!";

        // Create Scanner object in try-with-resources to ensure it closes automatically
        try (Scanner scanner = new Scanner(input)) {

            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println("Line: " + line);
            }
        } // Scanner is automatically closed here
    }
}

Output:

Line: Hello, world!
Line: Welcome to Java programming.
Line: Enjoy coding!

Handling Empty Lines

This example shows how to handle empty lines in the input.

Example

import java.util.Scanner;

public class HandleEmptyLinesExample {
    public static void main(String[] args) {
        String input = "Hello, world!\n\nWelcome to Java programming.\n\nEnjoy coding!";

        // Create Scanner object in try-with-resources to ensure it closes automatically
        try (Scanner scanner = new Scanner(input)) {

            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                if (line.isEmpty()) {
                    System.out.println("Empty line found");
                } else {
                    System.out.println("Line: " + line);
                }
            }
        } // Scanner is automatically closed here
    }
}

Output:

Line: Hello, world!
Empty line found
Line: Welcome to Java programming.
Empty line found
Line: Enjoy coding!

Real-World Use Case

Reading User Input

In real-world applications, the nextLine() method can be used to read and process user input from the console, where each input is treated as a complete line.

Example

import java.util.Scanner;

public class UserInputExample {
    public static void main(String[] args) {
        System.out.println("Enter some text (type 'exit' to quit):");

        // Create Scanner object in try-with-resources to ensure it closes automatically
        try (Scanner scanner = new Scanner(System.in)) {

            while (true) {
                String line = scanner.nextLine();
                if (line.equalsIgnoreCase("exit")) {
                    break;
                }
                System.out.println("You entered: " + line);
            }
        } // Scanner is automatically closed here
    }
}

Output (example interaction):

Enter some text (type 'exit' to quit):
Hello, world!
You entered: Hello, world!
Java programming is fun.
You entered: Java programming is fun.
exit

Conclusion

The Scanner.nextLine() method is used to read and return the next complete line from the input. This method is particularly useful for applications requiring line-by-line input processing. By understanding and using this method, you can efficiently parse and handle text input data. Always close the Scanner using try-with-resources to ensure proper resource management.

Comments