Bóson Treinamentos em Ciência e Tecnologia

Curso de Java – Entrada de dados com Classe Scanner e objeto System.in

Entrada de dados com Scanner em Java

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:

 

Sair da versão mobile