Curso de Java – Entrada de dados com Classe Scanner e objeto System.in
Classe Scanner e objeto System.in
Podemos usar a classe Scanner para realizar a entrada de dados a partir do teclado em um programa.
Para entrar com texto em um programa, precisamos de um objeto que represente o teclado e que forneça um serviço de entrada de texto. Esse objeto é o System.in, que irá representar o teclado, e é passado como argumento para o objeto Scanner criado. O objeto System.in é quem realiza a leitura do que é escrito no teclado.
A classe Scanner não está disponível por padrão, por isso deve ser adicionada por meio de uma declaração import, que faz referência ao pacote que contém a classe Scanner (no caso, java.util). Para importá-la, usamos o seguinte comando:
import java.util.Scanner;
Criando um objeto Scanner
Podemos instanciar um objeto Scanner com a seguinte sintaxe:
Scanner entrada = new Scanner(System.in);
O objeto entrada será então utilizado para receber o que for digitado no teclado pelo usuário, durante a execução do programa, e enviar esses dados a uma variável.
Para ler um texto digitado (string), podemos usar o método nextLine(), como segue:
String nome = entrada.nextLine();
O qual irá armazenar o que o foi digitado pelo usuário no teclado na variável nome, que é do tipo String.
Exemplo
Vejamos um exemplo da aplicação da classe Scanner para receber dados digitados pelo usuário:
package testeScanner; import java.util.Scanner; public class EntrarEndereco { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); System.out.print("Digite o nome: "); String nome = entrada.nextLine(); System.out.print("Digite a cidade: "); String cidade = entrada.nextLine(); System.out.println(); System.out.println("Nome: " + nome); System.out.println("Cidade: " + cidade); entrada.close(); } }
Ao terminar de efetuar a leitura dos dados do teclado, é importante fechar o objeto Scanner usando o método close(), o que fizemos na última linha do código.
Recebendo outros tipos de dados com Scanner
No exemplo anterior fizemos a leitura de strings de texto com o Scanner. Também é possível ler outros tipos de dados, como números inteiros e de ponto flutuante, usando para isso métodos apropriados. A tabela a seguir mostra alguns desses métodos:
Tipo de dado | Método |
string | nextLine() |
int | nextInt() |
float | nextFloat() |
No próximo exemplo iremos realizar a leitura de valores inteiro e de ponto flutuante.
Exemplo 02
import java.util.Scanner; public class testes { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); System.out.print("Digite o nome: "); String nome = entrada.nextLine(); System.out.print("Digite a idade: "); int idade = entrada.nextInt(); System.out.print("Digite a altura: "); float altura = entrada.nextFloat(); System.out.println(); System.out.println("Nome: " + nome); System.out.println("Altura: " + altura); System.out.println("Idade: " + idade); entrada.close(); } }
Exercício
Para exercitar e testar seu aprendizado sobre a classe Scanner, tente realizar o exercício a seguir:
1 – Escreva um programa para uma loja que imprima os dados de uma compra. Quando o programa é executado, deve-se fornecer os seguintes dados:
- Nome do comprador
- Produto adquirido
- Quantidade adquirida
- Preço unitário do produto
Parabéns pelos conteúdos postados por você, Fábio. Graças a você e suas vídeo aulas que aprendi Java.
Valeu Daniel! Fico feliz em ajudar!
Oi eu preciso de ajuda mais um vez e entendimento eu curso técnico em informática estou commuita dificuldade em programação.