A entrada de dados é uma parte essencial de muitas aplicações em Java, permitindo que o programa receba informações do usuário durante a execução. Para facilitar essa tarefa, Java oferece a classe Scanner
, que torna a leitura de vários tipos de dados do console muito simples. Neste artigo, vamos explorar como usar o Scanner
para capturar entradas de dados de maneira eficiente e clara.
O Que é o Scanner?
A classe Scanner
está localizada no pacote java.util
e é usada para ler entradas de diversos tipos, como inteiros, strings, e números de ponto flutuante, do console ou de arquivos.
Como Usar o Scanner
1. Importação da Classe Scanner: Para usar o Scanner
, primeiro precisamos importá-lo.
2. Criação de um Objeto Scanner: Em seguida, criamos uma instância do Scanner
para ler a entrada do console.
3. Leitura de Diferentes Tipos de Dados: O Scanner
possui métodos específicos para ler diferentes tipos de dados.
- Leitura de Inteiros:
- Leitura de Strings:
- Leitura de Números de Ponto Flutuante:
Tipos de Métodos next()
A classe Scanner
oferece vários métodos next()
para ler diferentes tipos de dados do console:
- next(): Lê a próxima palavra (string) até encontrar um espaço em branco.
- nextLine(): Lê a linha inteira de entrada, incluindo espaços em branco.
- nextInt(): Lê o próximo valor inteiro.
- nextDouble(): Lê o próximo valor de ponto flutuante (decimal).
- nextBoolean(): Lê o próximo valor booleano (
true
oufalse
).
- nextLong(): Lê o próximo valor longo (long integer).
- nextFloat(): Lê o próximo valor de ponto flutuante (float).
- nextByte(): Lê o próximo valor byte.
Exemplo Completo
Aqui está um exemplo completo que demonstra a leitura de diferentes tipos de dados usando Scanner
:
Boas Práticas
- Fechar o Scanner: Sempre feche o
Scanner
ao terminar de usá-lo para liberar os recursos. Use o métodoscanner.close()
.
- Atenção ao usar nextLine(): Lembre-se de que o método
nextLine()
lê toda a linha de entrada, incluindo espaços em branco. Se usado após métodos comonextInt()
, ele pode parecer estar esperando uma entrada, porque consome o caractere de nova linha (enter) deixado pelo método anterior. Para evitar essa confusão, adicione umnextLine()
adicional logo após a leitura de outro tipo de dado.