Quer ficar por dentro das novidades da HostGator? Inscreva-se e receba tudo em primeira mão!

A confirmação da sua inscrição foi enviada para o seu e-mail

Agradecemos sua inscrição e esperamos que você aproveite nossos conteúdos!

Scanner em Java: O Que É e Como Usar

Compartilhe:

Descubra o que é, para que serve e como usar o Scanner em Java para ler dados oriundos do terminal ou de arquivos.

O Scanner em Java é uma classe utilizada para facilitar a leitura dos dados informados pelo usuário, como nome ou idade. Esse sistema simplifica a entrada das informações no modo console, sendo capaz de analisar letras, números e sinais. 

Caso você não saiba, Java é uma linguagem de programação amplamente utilizada no desenvolvimento web, na criação de aplicativos e em sistemas empresariais, devido a sua robustez e estabilidade. Já uma classe em Java é um modelo empregado para definir um tipo de objeto, seus atributos e as ações que ele pode realizar.

Neste post vamos explicar o que é Scanner em Java, apresentar seus principais métodos e também mostrar exemplos práticos de como utilizá-la.

O que é a classe Scanner em Java? 

A classe Scanner em Java é um modelo usado para analisar informações oriundas de diferentes fontes, como console e arquivos. Além disso, com ela, é possível trabalhar com tipos primitivos de uma maneira mais prática e otimizada.

Em Java, os tipos primitivos representam valores simples e não são objetos. Alguns dos principais são:

  • int (inteiro).
  • double (decimal).
  • boolean (verdadeiro ou falso).
  • char (caractere).

Definição e propósito 

Esse sistema é utilizado para ler e interpretar dados da fonte especificada pelo usuário. Ele é capaz de reconhecer e processar diferentes tipos de dados, originários de fontes distintas, separando a entrada de textos em blocos.

A classe Scanner em Java foi desenvolvida após o lançamento do Java 5 com o intuito de facilitar a criação de softwares que dependem do recebimento de valores de variáveis através do console. 

Pacote de origem e introdução na linguagem 

A instância Scanner em Java pertence ao java.util, um pacote de biblioteca padrão do Java que contém diferentes tipos de classes e interfaces. 

Essa configuração é ideal para os sistemas que usam a linguagem de programação Java, pois ela é orientada a objetos. Isso significa que ela estrutura o código em classes e objetos, o que facilita a organização e a reutilização dos códigos usados.

Principais métodos da classe Scanner 

Os métodos da instância scanner são comandos que você pode utilizar para ler e fazer avaliações simples de arquivos e entradas do teclado de maneira rápida e prática. Confira a seguir quais são os principais e descubra também quais são as funcionalidades de cada um deles.

Método Funcionalidade 
close()Encerra a leitura do Scanner e libera os recursos associados à leitura
findInLine()Procura a próxima ocorrência de um padrão na linha atual, ignorando delimitadores
next()Lê a próxima palavra até um espaço
nextLine()Lê toda a linha até a quebra (ENTER)
nextInt()Lê um número inteiro (int)
nextDouble()Lê um número com casas decimais (double)
nextBoolean()Lê verdadeiro ou falso
nextFloat()Lê um número decimal (float)
nextLong()Lê um número inteiro usando valores maiores que o tipo int
hasNext()Verifica se há mais dados para ler
hasNextInt()Checa se o próximo valor é um int
match()Retorna o resultado da pesquisa do último objeto Scanner
radix()Retorna a base numérica usada para análise de números
skip()Ignora a entrada até que o padrão especificado seja encontrado

Diferenças entre next() e nextLine() 

A diferença entre esses dois comandos é muito simples. Você deve usar o next() sempre que precisar ler apenas a próxima palavra. Já o nextLine() lê toda a linha até encontrar o ENTER.

Por isso, é importante saber que quando você usa os comandos nextInt() ou next() o ENTER fica na fila de entrada e pode impactar a ação do método nextLine(), caso ele seja utilizado em seguida. 

Para evitar que isso aconteça, basta acrescentar uma camada extra ao comando, que ficará com a seguinte sintaxe: scanner.nextLine(). Ao fazer isso, a ferramenta será capaz de capturar todos os dados necessários. 

Utilizando a classe Scanner na prática 

Agora que você já conhece os principais métodos da instância Scanner, descubra como essa ferramenta pode capturar dados de diferentes fontes. 

Leitura de dados do teclado 

Uma das maneiras mais comuns de usar essa ferramenta é captando dados que são digitados no console. Nesse caso, o usuário digita as informações no terminal e o programa lê e usa esses materiais para executar uma ação

Para capturar esses dados, é preciso conectar o Scanner ao terminal, utilizando a requisição System.in, e usar o método adequado para ler o tipo de informação que está sendo inserida. Uma vez que esse material é lido pelo programa, ele poderá ser usado em outras ações, como comparar e somar, por exemplo. 

Leitura de arquivos e outras fontes 

Além de ser capaz de extrair os dados do terminal, o Scanner também consegue ler informações de outras fontes, como arquivos de diferentes formatos, strings e fluxos de dados

Para conseguir ler as informações contidas em um arquivo é necessário seguir o seguinte passo a passo:

  • Criar um objeto que representa o arquivo no sistema (exemplo: File arquivo = new File("dados.txt");
  • Em seguida, é preciso executar o método a seguir: Scanner scanner = new Scanner (arquivo);
  • Para checar se ainda há linhas restantes digite o comando: scanner.hasNextLine();
  • Caso o documento contenha mais dados, execute o método: scanner.nextLine() para a ferramenta ler a totalidade da próxima linha.

Se o arquivo que você deseja ler não estiver na mesma pasta do Scanner em Java, será necessário informar o caminho completo até o documento para que o programa possa acessá-lo e extrair as informações.

Tratamento de exceções com Scanner 

Foto: Freepik

Na classe Scanner em Java as exceções são erros que podem ocorrer durante a execução do programa. Se você ainda é um iniciante no uso dessa ferramenta, conheça agora as exceções mais comuns do Scanner:

  • FileNotFoundException – acontece quando o usuário tenta abrir um arquivo que não existe.
  • InputMismatchException – ocorre quando a pessoa digita uma letra no local que o programa espera um número.
  • NoSuchElementException – essa exceção acontece quando o programa tenta ler um valor que não está mais disponível.

Lidando com InputMismatchException e demais exceções

É possível resolver essas exceções utilizando um bloco try-catch e alguns comandos. O bloco try é o espaço no qual você vai executar uma ação que pode dar errado. Já o catch captura o erro e evita que o programa quebre. 

Veja abaixo qual é o comando indicado para lidar com cada tipo de exceção:

  • FileNotFoundException - catch (FileNotFoundException e).
  • InputMismatchException - catch (InputMismatchException e).
  • NoSuchElementException - catch (NoSuchElementException e).

Boas práticas para validação de entrada 

Conheça agora algumas dicas de boa práticas para ter mais chances de ser bem-sucedido no tratamento das exceções:

  • Sempre use o bloco try-catch para ler arquivos ou dados do teclado.
  • Evite deixar o programa quebrar usando mensagens como: Exception in thread "main".
  • Forneça mensagens amigáveis ao usuário. 

Tutorial: como utilizar a classe Scanner no Java 

Depois de descobrir o que é e para que serve a instância Scanner no Java, chegou a hora de aprender a usar esse programa na prática. Para isso, confira o tutorial que preparamos a seguir. 

Passo 1 – Importar a classe Scanner 

O primeiro passo para usar essa ferramenta é importar a classe Scanner para o seu programa Java. Para fazer isso, basta usar o seguinte comando:

Java 

import java.util.Scanner;

Passo 2 – Criar uma instância da classe Scanner 

Em seguida, será necessário criar uma instância Scanner, essa ação permite que o programa leia os dados inseridos por meio do teclado. A requisição que você deverá usar nessa etapa é a seguinte: 

Java 

Scanner scanner = new Scanner(System.in);

 Passo 3 – Ler diferentes tipos de dados 

Agora, você vai precisar selecionar os métodos Scanner compatíveis com os tipos de dados que você deseja ler, como no exemplo a seguir:

Java 

System.out.print("Digite seu nome: ");
String nome = scanner.nextLine();

System.out.print("Digite sua idade: ");
int idade = scanner.nextInt();

System.out.print("Digite seu salário: ");
double salario = scanner.nextDouble();

Passo 4 – Fechar o Scanner 

Após finalizar a leitura, não se esqueça de fechar o Scanner para liberar espaço no sistema.

Java 

scanner.close();

Conclusão 

A classe Scanner em Java é a ferramenta ideal para quem precisa ler dados oriundos de diferentes fontes, como arquivos .txt e entradas do teclado. Além de ser fácil de usar, ela conta com vários métodos que otimizam seu uso e diminuem o tempo de execução.

Recomendações para aprofundar o aprendizado 

Se você quer dominar essa ferramenta, tente usá-la sempre que possível para praticar seus métodos e formas de resolver eventuais exceções. Se possível, crie arquivos fictícios em diferentes formatos para ler no Scanner, pois isso vai auxiliar bastante no seu processo de aprendizado. 

Para aprofundar ainda mais os seus conhecimentos em Java e também em outras linguagens de programação, confira outros artigos sobre esse tema no blog da HostGator:

Navegue por tópicos

  • O que é a classe Scanner em Java? 

    • Definição e propósito 

    • Pacote de origem e introdução na linguagem 

  • Principais métodos da classe Scanner 

    • Diferenças entre next() e nextLine() 

  • Utilizando a classe Scanner na prática 

    • Leitura de dados do teclado 

    • Leitura de arquivos e outras fontes 

  • Tratamento de exceções com Scanner 

    • Lidando com InputMismatchException e demais exceções

    • Boas práticas para validação de entrada 

  • Tutorial: como utilizar a classe Scanner no Java 

    • Passo 1 – Importar a classe Scanner 

    • Passo 2 – Criar uma instância da classe Scanner 

    •  Passo 3 – Ler diferentes tipos de dados 

    • Passo 4 – Fechar o Scanner 

  • Conclusão 

    • Recomendações para aprofundar o aprendizado 

Tags:

  • Domínios
  • Hospedagem de Sites

Carolina Martins

Jornalista, estrategista de conteúdo e redatora SEO há mais de quatro anos, com ampla experiência na produção de conteúdos sobre tecnologia, finanças e marketing para blogs e redes sociais. Já trabalhou para agências de comunicação, startups e também para grandes empresas.

Mais artigos do autor

Garanta sua presença online

Encontre o nome perfeito para seu site

www.