Users Pricing

blog

home / developersection / blogs / overview of java scanner class
Overview of Java Scanner Class

Overview of Java Scanner Class

Ravi Vishwakarma 742 02 Jun 2024 Updated 02 Jun 2024

The Scanner class in Java is part of the java.util package and provides a convenient way to parse primitive types and strings using regular expressions. It is commonly used for reading input from various sources, including standard input, files, and strings.

Overview

  • Package: java.util
  • Introduced in: Java 5 (JDK 1.5)
  • Purpose: To simplify input parsing.

Importing the Scanner Class

To use the Scanner class, you need to import it:

import java.util.Scanner;

Creating a Scanner Object

You can create a Scanner object to read input from different sources:

Standard Input (Console):

Scanner scanner = new Scanner(System.in);

File Input:

import java.io.File;
import java.io.FileNotFoundException;

File file = new File("filename.txt");
Scanner scanner = new Scanner(file);

String Input:

String input = "Hello World";
Scanner scanner = new Scanner(input);

Basic Methods

The Scanner class provides numerous methods to read different types of input:

Reading a String:

String line = scanner.nextLine(); // Reads a line of text

Reading a Word:

String word = scanner.next(); // Reads the next token (word)

Reading Different Data Types:

int i = scanner.nextInt();     // Reads an integer
double d = scanner.nextDouble(); // Reads a double
boolean b = scanner.nextBoolean(); // Reads a boolean

Checking for Input

Before reading input, it's often useful to check if there is input available:

Checking for a Next Token:

if (scanner.hasNext()) {
    String token = scanner.next();
}

Checking for a Specific Data Type:

if (scanner.hasNextInt()) {
   int i = scanner.nextInt();
}

Delimiters

The Scanner class uses delimiters to separate tokens. By default, it uses whitespace. You can change the delimiter pattern if needed:

scanner.useDelimiter(","); // Sets the delimiter to a comma

Closing the Scanner

It's important to close the Scanner object when done to free up resources:

scanner.close();

Here's a complete example that demonstrates reading different types of input from the console:

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // Reading a line of text
        System.out.println("Enter a line of text:");
        String line = scanner.nextLine();
        System.out.println("You entered: " + line);

        // Reading a word
        System.out.println("Enter a word:");
        String word = scanner.next();
        System.out.println("You entered: " + word);

        // Reading an integer
        System.out.println("Enter an integer:");
        if (scanner.hasNextInt()) {
            int i = scanner.nextInt();
            System.out.println("You entered: " + i);
        } else {
            System.out.println("That's not an integer.");
            scanner.next(); // Clear the invalid input
        }

        // Reading a double
        System.out.println("Enter a double:");
        if (scanner.hasNextDouble()) {
            double d = scanner.nextDouble();
            System.out.println("You entered: " + d);
        } else {
            System.out.println("That's not a double.");
            scanner.next(); // Clear the invalid input
        }

        scanner.close();
    }
}

Summary

  • Convenient Parsing: The Scanner class makes it easy to parse primitive types and strings.
  • Multiple Sources: It can read from standard input, files, and strings.
  • Flexibility: Provides methods to check and read various data types.
  • Delimiters: Uses whitespace as the default delimiter but allows custom delimiters.
  • Resource Management: Remember to close the Scanner object to release resources.

The Scanner class is a versatile and powerful tool for handling input in Java applications, simplifying the process of reading and parsing user input or data from other sources.


Ravi Vishwakarma

Software Developer

Hi, my self Ravi Vishwakarma. I have completed my studies at SPICBB Varanasi. now I completed MCA with 76% form Veer Bahadur Singh Purvanchal University Jaunpur. SWE @ MindStick | Software Engineer | Web Developer | .Net Developer | Web Developer | Backend Engineer | .NET Core Developer