Scanner
Leitura de entrada do usuário
O Scanner é a forma mais simples de ler entrada do usuário em Java. Pertence ao pacote java.util e pode ler dados de diversas fontes: System.in (teclado), File (arquivo) ou String. Para usá-lo, você cria um objeto Scanner passando a fonte de dados.
Os principais métodos de leitura são: nextLine() para uma linha inteira, next() para uma palavra (até espaço), nextInt() para inteiros, nextDouble() para decimais e nextBoolean() para booleanos. Sempre chame close() ao terminar para liberar o recurso.
Um ponto de atenção: quando você usa nextInt() seguido de nextLine(), o nextLine() captura o caractere de nova linha \n que sobrou no buffer. A solução é adicionar um nextLine() extra após nextInt() para limpar o buffer antes de ler a próxima string.
import java.util.Scanner;
public class EntradaUsuario {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Nome: ");
String nome = scanner.nextLine(); // lê linha inteira
System.out.print("Idade: ");
int idade = scanner.nextInt();
scanner.nextLine(); // ⚠ limpa o buffer!
System.out.print("Altura (ex: 1.75): ");
double altura = scanner.nextDouble();
System.out.printf(
"Olá, %s! %d anos, %.2f m%n",
nome, idade, altura
);
scanner.close();
}
}
// ── Lendo de String (útil em testes) ─────────────
Scanner sc = new Scanner("10 20 30");
while (sc.hasNextInt()) {
System.out.println(sc.nextInt()); // 10, 20, 30
}
sc.close();Em projetos reais com Spring Boot ou sistemas web, o Scanner é raramente usado — a entrada vem via HTTP, banco de dados ou arquivos. Mas em aplicações de terminal (CLIs) e exercícios, é indispensável.