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
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
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
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