DEV Community

Cover image for User Input in Java: Scanner and Console Basics
Sharique Siddiqui
Sharique Siddiqui

Posted on

User Input in Java: Scanner and Console Basics

Getting user input is a fundamental part of many Java programs, whether you’re taking a name, number, or any type of data from the keyboard. Java offers simple yet powerful ways to handle user input—most commonly using the Scanner class and, in some cases, the Console class. Here’s a practical guide to get you started.

Using the Scanner Class

What is the Scanner?

Scanner is the go-to class for most Java beginners when it comes to capturing user input—from numbers to entire lines of text. It’s found in the java.util package, so you’ll need to import it first.

java
import java.util.Scanner;
Enter fullscreen mode Exit fullscreen mode

How to Use Scanner Step-by-Step

1.Create a Scanner object that reads from the keyboard:

java
Scanner scanner = new Scanner(System.in);
Enter fullscreen mode Exit fullscreen mode

2.Prompt the user for input:

java
System.out.print("Enter your name: ");
Enter fullscreen mode Exit fullscreen mode

3.Read the input using one of Scanner’s methods, depending on the data type:

  • nextLine() for an entire line of text
  • nextInt() for an integer
  • nextDouble() for a decimal number

Example:

java
String name = scanner.nextLine();
int age = scanner.nextInt();
Enter fullscreen mode Exit fullscreen mode

4.Process and display the input:

java
System.out.println("Hello, " + name + "! You are " + age + " years old.");
Enter fullscreen mode Exit fullscreen mode

5.Close Scanner when done to free up resources:

java
scanner.close();
Sample Code
java
import java.util.Scanner;

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

        System.out.print("Enter your name: ");
        String name = scanner.nextLine();

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

        System.out.println("Hello, " + name + ". You are " + age + " years old.");

        scanner.close();
    }
}
Enter fullscreen mode Exit fullscreen mode

Reading Different Data Types with Scanner

Method Reads...
nextLine() A line of text
next() A single word
nextInt() Integer
nextDouble() Double
nextBoolean() Boolean

Note: If you try to enter the wrong type (e.g., text where a number is expected), Java will throw an exception—handle this case in larger programs for a smooth user experience.

Using the Console Class

The Console class provides another way to read input, especially plain text or sensitive data (like passwords).

How Does Console Work?

java
String input = System.console().readLine("Enter your input: ");
Enter fullscreen mode Exit fullscreen mode

readLine() lets you fetch a line of input from the console.

readPassword() reads password input without echoing it on the screen (great for security).

Limitations

The Console class won't work in most IDEs (like Eclipse, IntelliJ, or NetBeans). It's best suited for running Java programs directly in a terminal or command prompt.

Input is always read as a string—you’ll need to manually convert to numbers as needed.

Example Usage

java
public class ConsoleInputDemo {
    public static void main(String[] args) {
        String name = System.console().readLine("Enter your name: ");
        System.out.println("Hello, " + name);
    }
}
Enter fullscreen mode Exit fullscreen mode

Scanner vs Console: A Quick Comparison

Feature Scanner Console
Works in IDEs Yes No (usually only in terminals)
Reads different types Yes (int, double, etc) No, just strings (convert manually)
Secure input (password) No Yes, with readPassword()
Common for beginners Yes Less common

Tips for Beginners

Always import java.util.Scanner; at the top of your file when using Scanner.

Use Scanner if you’re working in an IDE or need to read numeric types.

Use Console for security-sensitive input or if running your app in a real terminal.

Remember to always close the Scanner with scanner.close() when done.

Final Thoughts

For most beginner projects, Scanner is the best and most flexible way to take user input across environments and data types. Console offers more specialized features and is useful in command-line terminal settings. With a little practice, you’ll find both are essential tools for engaging with users through your Java programs

Check out the YouTube Playlist for great java developer content for basic to advanced topics.

Please Do Subscribe Our YouTube Channel for clearing programming concept and much more ... : CodenCloud

Top comments (0)