Como trabalhar com Scanner para entrada de dados no console?

A classe Scanner em Java permite capturar entradas do usuário pelo console, facilitando a leitura de strings, números e outros tipos de dados de maneira simples.

Como trabalhar com Scanner para entrada de dados no console?

A classe Scanner em Java é amplamente utilizada para ler entradas do usuário pelo console. Ela permite capturar textos, números inteiros, decimais e até caracteres individuais.

1. Criando um Scanner para Ler Entrada do Usuário

Para utilizar o Scanner, primeiro instanciamos um objeto associado à entrada padrão (System.in).

import java.util.Scanner;

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

        System.out.print("Digite seu nome: ");
        String nome = scanner.nextLine();

        System.out.print("Digite sua idade: ");
        int idade = scanner.nextInt();

        System.out.println("Nome: " + nome + ", Idade: " + idade);
        scanner.close();
    }
}

2. Métodos Principais do Scanner

Método Tipo de Entrada
nextLine() Lê uma linha inteira de texto
next() Lê apenas a próxima palavra (até espaço)
nextInt() Lê um número inteiro
nextDouble() Lê um número decimal
nextBoolean() Lê um valor booleano (true ou false)
next().charAt(0) Lê um único caractere

3. Tratando Problemas Comum ao Usar nextInt() e nextLine()

O nextInt() não consome a quebra de linha (\n) deixada no buffer, o que pode gerar erros ao usar nextLine() depois dele.

System.out.print("Digite sua idade: ");
int idade = scanner.nextInt();
scanner.nextLine(); // Consome a quebra de linha

4. Lendo Vários Tipos de Dados

Podemos capturar diferentes tipos de entrada usando Scanner:

System.out.print("Digite um número decimal: ");
double numero = scanner.nextDouble();

System.out.print("Digite verdadeiro ou falso: ");
boolean resposta = scanner.nextBoolean();

5. Fechando o Scanner

É recomendável fechar o Scanner após o uso para evitar vazamento de recursos:

scanner.close();

Conclusão

O Scanner é uma maneira prática de capturar entrada de dados no console em Java. Seu uso correto evita problemas como leitura incorreta e erros de buffer. Para leitura de múltiplos tipos de dados, devemos tomar cuidado com o comportamento da leitura de nextLine() após nextInt().

O uso de Scanner é essencial para aplicações interativas, como sistemas de login, formulários de cadastro e ferramentas de terminal. Ele permite capturar informações de usuários de maneira simples e eficiente, sendo um dos primeiros conceitos aprendidos por iniciantes em Java.

Algumas aplicações:

  • Interação com o usuário via terminal
  • Entrada de dados em formulários de linha de comando
  • Captura de valores numéricos e textuais
  • Sistemas de questionários e quizzes

Dicas para quem está começando

  • Use nextLine() para ler textos completos
  • Evite erros de buffer adicionando nextLine() após nextInt()
  • Feche o Scanner com scanner.close(); após o uso
  • Para capturar caracteres, utilize next().charAt(0)
  • Evite múltiplas instâncias de Scanner, pois pode gerar conflitos

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como trabalhar com Scanner para entrada de dados no console

Compartilhe este tutorial

Continue aprendendo:

Qual a diferença entre FileReader e BufferedReader

FileReader e BufferedReader são usados para leitura de arquivos em Java, mas BufferedReader é mais eficiente por usar buffer para otimizar a performance.

Tutorial anterior

Como manipular diretórios e criar pastas via código Java

A manipulação de diretórios em Java pode ser feita com File e NIO, permitindo criar, renomear, excluir e listar pastas de forma eficiente.

Próximo tutorial