How to Use Scanner Class in Java

Using the Scanner class in Java might seem a bit daunting at first, but once you understand how it works, you'll find it incredibly useful. Whether you're reading input from a file or capturing user input from the console, the Scanner class is your go-to tool. In this article, you'll learn how to utilize this class with clear examples and explanations.

Why Use the Scanner Class?

The Scanner class in Java is part of the java.util package. It's primarily used to parse primitive types and strings using regular expressions. But what sets it apart? How does it compare to other input methods in Java?

The main benefits of using the Scanner class include its simplicity and flexibility. Unlike older methods like BufferedReader, the Scanner class can read inputs of various data types directly. This means you can easily capture integers, floats, and strings without the need for cumbersome type conversions.

How It Works

Have you ever wondered how the Scanner class operates? Let's break it down. The Scanner works by dividing the input into tokens using delimiters, usually whitespace. These tokens are then parsed into specific data types as needed.

Consider the difference between the Scanner class and other data structures. While a list or an array can store multiple items, and a dictionary maps keys to values, a Scanner simply reads and interprets data. It's more about parsing and less about storage.

Intrigued? You might also want to explore how to read files in Java, where the Scanner class plays a key role.

Getting Started: Code Examples

To truly grasp the power of the Scanner class, nothing beats hands-on practice. Let's look at some code examples to illustrate its use.

Example 1: Reading Console Input

import java.util.Scanner;

public class ConsoleInput {
  public static void main(String[] args) {
    // Create a Scanner object
    Scanner scanner = new Scanner(System.in);

    // Ask for input and store it
    System.out.print("Enter your name: ");
    String name = scanner.nextLine();

    // Output the user's input
    System.out.println("Hello, " + name + "!");
  }
}
  • Create a Scanner object: You start by creating an instance of the Scanner class, tied to System.in.
  • Capture input: nextLine() waits for user input and stores it as a String.
  • Output: Finally, you can use System.out.println to show the captured input.

Example 2: Reading Integers

import java.util.Scanner;

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

    System.out.print("Enter age: ");
    int age = scanner.nextInt();

    System.out.println("Age is " + age);
  }
}
  • Use nextInt(): This method reads the next token as an integer.
  • Display result: Print the integer in a formatted string.

Example 3: Reading Floats

import java.util.Scanner;

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

    System.out.print("Enter the price: ");
    float price = scanner.nextFloat();

    System.out.println("Price is " + price);
  }
}
  • Use nextFloat(): Similar to integers, this reads a float value.
  • Format output: Display the result as needed.

Example 4: Using Delimiters

import java.util.Scanner;

public class DelimiterInput {
  public static void main(String[] args) {
    Scanner scanner = new Scanner("Hello;World;Java");
    scanner.useDelimiter(";");

    while(scanner.hasNext()) {
      System.out.println(scanner.next());
    }
  }
}
  • Set a delimiter: useDelimiter(";") splits input by semicolon instead of whitespace.
  • Loop through tokens: hasNext() checks if more tokens are available.

Example 5: Parsing a CSV File

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class ParseCSV {
  public static void main(String[] args) throws FileNotFoundException {
    Scanner scanner = new Scanner(new File("data.csv"));
    scanner.useDelimiter(",");

    while(scanner.hasNext()) {
      System.out.println(scanner.next());
    }
    scanner.close();
  }
}
  • Read a file: Scanner can be linked to a file object.
  • Process content: Again, using hasNext() and next() to iterate through file contents.

For a deeper understanding of Java's capabilities, consider reading about asserting error-free code.

Conclusion

The Scanner class in Java is a versatile tool that's ideal for both beginners and experienced programmers. It's your gateway to efficiently handling input data in a variety of use cases. Whether you're capturing console input or parsing complex files, your journey with the Scanner class starts here. Experiment with the sample code and unlock the potential of this practical Java feature. By mastering these examples, you're well on your way to becoming proficient in Java programming. Dive deeper into the world of Java by understanding what a class in Java is.

Previous Post Next Post

Welcome, New Friend!

We're excited to have you here for the first time!

Enjoy your colorful journey with us!

Welcome Back!

Great to see you Again

If you like the content share to help someone

Thanks

Contact Form