Java Scanner Methods

Reading user input in Java programs

⌨️ What is Java Scanner?

Scanner is a Java class that reads user input from keyboard, files, or strings. It provides methods to read different data types like integers, strings, and doubles easily.


// Basic Scanner usage
import java.util.Scanner;

Scanner input = new Scanner(System.in);
System.out.print("Enter your name: ");
String name = input.nextLine();
System.out.println("Hello, " + name + "!");
                                    

Common Scanner Methods

🔤

nextLine()

Reads entire line of text

String text = scanner.nextLine();
System.out.println(text);
🔢

nextInt()

Reads integer numbers

int number = scanner.nextInt();
System.out.println(number);
💰

nextDouble()

Reads decimal numbers

double price = scanner.nextDouble();
System.out.println(price);

nextBoolean()

Reads true/false values

boolean isReady = scanner.nextBoolean();
System.out.println(isReady);

🔹 Basic Input Example

Reading different types of user input:

import java.util.Scanner;

public class InputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Reading string
        System.out.print("Enter your name: ");
        String name = scanner.nextLine();
        
        // Reading integer
        System.out.print("Enter your age: ");
        int age = scanner.nextInt();
        
        // Reading double
        System.out.print("Enter your height (in meters): ");
        double height = scanner.nextDouble();
        
        // Display information
        System.out.println("\n--- Your Information ---");
        System.out.println("Name: " + name);
        System.out.println("Age: " + age + " years old");
        System.out.println("Height: " + height + " meters");
        
        scanner.close(); // Always close scanner
    }
}

Sample Output:

Enter your name: John Doe
Enter your age: 25
Enter your height (in meters): 1.75

--- Your Information ---
Name: John Doe
Age: 25 years old
Height: 1.75 meters

🔹 Calculator Example

Simple calculator using Scanner:

import java.util.Scanner;

public class SimpleCalculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("=== Simple Calculator ===");
        
        System.out.print("Enter first number: ");
        double num1 = scanner.nextDouble();
        
        System.out.print("Enter operator (+, -, *, /): ");
        String operator = scanner.next();
        
        System.out.print("Enter second number: ");
        double num2 = scanner.nextDouble();
        
        double result = 0;
        
        switch (operator) {
            case "+":
                result = num1 + num2;
                break;
            case "-":
                result = num1 - num2;
                break;
            case "*":
                result = num1 * num2;
                break;
            case "/":
                if (num2 != 0) {
                    result = num1 / num2;
                } else {
                    System.out.println("Error: Cannot divide by zero!");
                    return;
                }
                break;
            default:
                System.out.println("Invalid operator!");
                return;
        }
        
        System.out.println("Result: " + num1 + " " + operator + " " + num2 + " = " + result);
        scanner.close();
    }
}

Sample Output:

=== Simple Calculator ===
Enter first number: 15
Enter operator (+, -, *, /): *
Enter second number: 3
Result: 15.0 * 3.0 = 45.0

🔹 Input Validation

Checking if input is valid before using it:

import java.util.Scanner;

public class InputValidation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Enter an integer: ");
        
        // Check if next input is an integer
        if (scanner.hasNextInt()) {
            int number = scanner.nextInt();
            System.out.println("You entered: " + number);
            System.out.println("Double of your number: " + (number * 2));
        } else {
            System.out.println("That's not a valid integer!");
            String invalidInput = scanner.next();
            System.out.println("You entered: " + invalidInput);
        }
        
        scanner.close();
    }
}

Sample Output (Valid Input):

Enter an integer: 42
You entered: 42
Double of your number: 84

🔹 Important Scanner Tips

Best Practices:

  • Always import: import java.util.Scanner;
  • Create once: Scanner scanner = new Scanner(System.in);
  • Close when done: scanner.close();
  • Use nextLine() for strings to avoid input buffer issues
  • Validate input using hasNextInt(), hasNextDouble(), etc.

Common Methods:

  • next() - reads single word
  • nextLine() - reads entire line
  • nextInt() - reads integer
  • nextDouble() - reads decimal number
  • hasNext() - checks if input is available

🧠 Test Your Knowledge

Which method reads an entire line of text?