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

 

Sobre Fábio dos Reis (1262 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*