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()
.
Por que Scanner é a melhor opção para entrada de dados no console em Java?
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ósnextInt()
- Feche o
Scanner
comscanner.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