Java/Recursos da Linguagem/Scanner
Java⏱ ~2 min de leitura

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.

Exemplo.java
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();
💡 Dica pro

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.

Recompensa+20 XP+exercícios