Como funciona classe Scanner no Java? Ela lê dados do console (System.in), divide o texto em tokens separados por espaços ou quebras de linha e converte cada token em tipos primitivos como int, double ou String. Para utilizá-la, basta importar java.util.Scanner, instanciar o objeto e chamar métodos como nextInt(), nextLine() ou nextDouble(). Em 2026, continua sendo a forma mais simples e didática de capturar entradas do usuário em programas Java.
O que é a classe Scanner e como ela funciona no Java?
A classe Scanner é uma API do pacote java.util criada para simplificar a leitura de dados no modo console. Antes dela, era preciso lidar com BufferedReader e conversões manuais de String para números; depois do Java 5, ficou muito mais natural capturar valores digitados pelo usuário sem montar um código cheio de parseInt e parseDouble.
Entender como funciona classe Scanner é, na essência, compreender três passos: importar a classe, criar um objeto apontando para a fonte de entrada (geralmente System.in) e chamar métodos como nextInt() ou nextLine() para obter cada valor.
Em nossos projetos na Mestres da Web — fábrica de software certificada ISO 9001 e ISO 27001, fundada em 2012, com mais de 500 projetos entregues — nós testamos esse mesmo raciocínio em turmas iniciantes e também em protótipos rápidos de software sob medida, justamente porque a curva de aprendizado é baixa e o retorno didático é alto.
Se a dúvida é como funciona classe scanner em 2026, a resposta curta é: ela transforma o que o usuário digita em dados utilizáveis pelo programa em poucos comandos.
"A classe Scanner funciona no Java como uma ponte entre o usuário e o programa, lendo tokens separados por delimitadores e convertendo-os em tipos primitivos da linguagem Java, de forma simples, rápida e didática."
Para que serve a classe Scanner na prática?
A principal finalidade da classe Scanner é separar a entrada de texto em blocos menores — os tokens — usando como delimitadores padrão espaços em branco, tabulações e mudanças de linha. Esses tokens podem, em seguida, ser convertidos automaticamente em String, int, float, double, boolean, entre outros tipos suportados pela linguagem.
Por isso, compreender como funciona classe Scanner é praticamente obrigatório para quem está construindo seus primeiros programas, formulários no terminal ou scripts de linha de comando. Em aplicações corporativas mais robustas, ela costuma ser substituída por bibliotecas como BufferedReader ou frameworks de I/O, mas continua sendo uma ferramenta útil para fins didáticos, testes rápidos e ferramentas internas de operação.
Lançada oficialmente em setembro de 2004 com o Java 5, a classe Scanner segue presente na JDK 25 LTS, a versão de suporte de longo prazo mais recente em 2026 (segundo o calendário oficial de versões da plataforma Java), o que mostra que, mais de duas décadas depois, continua relevante no ecossistema.
Como funciona classe Scanner passo a passo no Java?
Veja a seguir o roteiro prático para colocar a classe Scanner do Java em funcionamento dentro de um projeto Java padrão em 2026. Nós seguimos essa mesma sequência quando treinamos novos desenvolvedores em nosso time e em mais de 500 projetos entregues desde 2012:
- Importe a classe no início do arquivo com
import java.util.Scanner;. - Crie um projeto Java na sua IDE preferida (Eclipse, IntelliJ ou VS Code) e adicione uma nova classe.
- Declare o método main, que será o ponto de entrada da aplicação:
public static void main(String[] args) { }. - Instancie o Scanner lendo do console com
Scanner s = new Scanner(System.in);. - Use os métodos de leitura como nextLine(), nextInt() ou nextDouble() para capturar os dados digitados pelo usuário.
- Feche o Scanner ao final com s.close() para liberar o recurso de entrada e evitar vazamentos.
Como funciona classe Scanner em um exemplo mínimo em Java?
Este é o menor código capaz de mostrar, na prática, como funciona classe Scanner lendo o nome do usuário e exibindo uma saudação personalizada:
import java.util.Scanner;
public class Saudacao {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Digite seu nome: ");
String nome = s.nextLine();
System.out.println("Olá, " + nome + "!");
s.close();
}
}
Como funciona classe Scanner lendo múltiplos tipos de dados?
Para ir além do "Olá, mundo", o trecho abaixo mostra como funciona classe Scanner quando precisamos ler diferentes tipos de dados na mesma execução — algo que nós testamos em rotinas internas de cadastro em nossos projetos sob medida:
import java.util.Scanner;
public class Cadastro {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Nome: ");
String nome = s.nextLine();
System.out.print("Idade: ");
int idade = s.nextInt();
System.out.print("Salário: ");
double salario = s.nextDouble();
System.out.println(nome + " tem " + idade + " anos e ganha R$ " + salario);
s.close();
}
}
Quais são os principais métodos da classe Scanner?
A tabela abaixo resume os métodos mais usados e ajuda a visualizar como funciona classe Scanner em diferentes situações do dia a dia, tanto em estudos quanto em scripts profissionais:
| Método | Tipo retornado | Quando usar |
|---|---|---|
| next() | String | Ler o próximo token até o delimitador. |
| nextLine() | String | Ler a linha inteira, incluindo espaços. |
| nextInt() | int | Ler um número inteiro digitado. |
| nextDouble() | double | Ler um número com casas decimais. |
| nextBoolean() | boolean | Ler verdadeiro ou falso. |
| hasNext() | boolean | Verificar se há mais tokens disponíveis. |
| close() | void | Encerrar o Scanner. |
Além desses, vale conhecer useDelimiter(), que permite trocar o delimitador padrão por outro caractere, como vírgula ou ponto e vírgula, conforme a necessidade do projeto. Também é importante destacar hasNextInt(), hasNextDouble() e hasNextLine(), que validam a entrada antes da leitura e ajudam a evitar exceções do tipo InputMismatchException. A lista completa de construtores e métodos está disponível na documentação oficial da classe Scanner na Oracle e no tutorial oficial de I/O da plataforma Java.
Como funciona classe Scanner com arquivos em vez de teclado?
Um detalhe pouco lembrado por quem está começando é que o Scanner não lê apenas do console: ele também lê de arquivos, strings e fluxos de rede. Para isso, basta trocar o argumento System.in por um File ou InputStream:
try (Scanner s = new Scanner(new File("dados.txt"))) {
while (s.hasNextLine()) {
System.out.println(s.nextLine());
}
}
Nesse exemplo, fica claro como funciona classe Scanner lendo um arquivo linha a linha, sem precisar lidar com BufferedReader. Em pipelines de dados simples, essa abordagem costuma ser suficiente e já foi aplicada em automações internas em mais de 500 projetos entregues pela Mestres da Web desde 2012.
Scanner é a melhor opção para ler dados em Java?
Para iniciantes e aplicações simples, sim: entender como funciona classe Scanner já resolve a maior parte dos casos de leitura via console.
Porém, em sistemas de alta performance ou que processam grandes volumes de dados, costuma-se migrar para BufferedReader combinado com Stream, que entrega melhor throughput e menor consumo de memória.
Em projetos sob demanda que desenvolvemos na Mestres da Web — somos certificados ISO 9001 e ISO 27001, com mais de 500 projetos entregues desde 2012 — o Scanner aparece majoritariamente em scripts internos, automações de QA e provas de conceito, enquanto o backend corporativo usa bibliotecas mais robustas. Se quiser entender melhor o papel de uma IDE nesse fluxo, vale ler nosso conteúdo sobre conceito e vantagens de uma IDE.
Quais são os erros mais comuns ao usar a classe Scanner?
Quem está aprendendo costuma tropeçar em alguns padrões — e entender como funciona classe Scanner em cenários de erro é tão importante quanto dominar a leitura básica. Listamos abaixo os equívocos mais frequentes que nós testamos em código real e que aparecem com regularidade em dúvidas de fórum:
- Esquecer o close(): mantém o fluxo de entrada aberto e pode gerar warning de vazamento de recurso.
- Misturar nextLine() com nextInt(): a quebra de linha deixada pelo nextInt() é consumida pelo próximo nextLine(), "pulando" a leitura do nome, por exemplo.
- Não tratar InputMismatchException: quando o usuário digita texto onde se espera número, o programa quebra sem mensagem amigável.
- Reutilizar o mesmo Scanner após erro: o estado interno fica inconsistente; o ideal é validar com hasNextInt() antes de ler.
Dominar esses pontos é tão importante quanto decorar os métodos, porque é isso que separa um código didático de um código pronto para produção — algo que aplicamos em todos os mais de 500 projetos entregues pela Mestres da Web.
Quando evitar o uso da classe Scanner?
Mesmo dominando como funciona classe Scanner, evite o seu uso quando o sistema precisa lidar com arquivos muito grandes, conexões de rede ou alta concorrência, pois ela não foi otimizada para esses cenários. Nesses casos, BufferedReader, NIO.2 ou bibliotecas como OkHttp costumam entregar resultados mais previsíveis e performáticos.
Mesmo sabendo como funciona classe Scanner por dentro, em ambiente de produção ela raramente é a escolha final. Se você está desenhando uma aplicação mais robusta, converse com nosso time pelo canal de contato da Mestres da Web e conheça cases reais do nosso portfólio ou como trabalhamos em projetos sob medida com foco em qualidade e segurança.
Perguntas frequentes
O que é a classe Scanner no Java?
A classe Scanner é uma API do pacote java.util, introduzida no Java 5 em setembro de 2004, que lê e interpreta entradas de texto no console separando-as em tokens por espaços, tabulações ou quebras de linha. É a forma mais comum de capturar dados do usuário em programas Java iniciais e didáticos, e segue disponível na JDK 25 LTS em 2026.
Como funciona classe Scanner na prática?
Como funciona classe Scanner em três etapas: você importa a classe, cria um objeto apontando para System.in e chama métodos como nextInt(), nextLine() ou nextDouble(). Cada chamada lê um token e o converte automaticamente para o tipo primitivo correspondente, simplificando o código em poucas linhas.
Quais os principais métodos da classe Scanner?
Os métodos mais usados da classe Scanner são next(), nextLine(), nextInt(), nextDouble(), nextBoolean() e close(). Eles cobrem, de forma padronizada, a leitura de textos, números inteiros, decimais e booleanos, além do encerramento correto do recurso aberto no console.
Qual a diferença entre next() e nextLine() da classe Scanner?
O next() lê apenas o próximo token até encontrar um espaço ou quebra de linha, enquanto o nextLine() lê a linha inteira, incluindo espaços. Para nomes completos ou frases, prefira sempre nextLine() para não truncar o valor digitado pelo usuário.
Ainda vale a pena aprender a classe Scanner em 2026?
Sim, especialmente para quem está começando. Em 2026, a classe continua sendo a porta de entrada para entender I/O em Java, antes de evoluir para BufferedReader, NIO ou frameworks como Spring Boot em projetos profissionais de maior escala.
Quais os erros mais comuns ao usar a classe Scanner?
Os mais frequentes são esquecer de chamar close(), misturar nextLine() com nextInt() sem consumir a quebra de linha pendente e não tratar InputMismatchException quando o usuário digita um tipo diferente do esperado. Validar com hasNextInt() antes de ler evita esses travamentos em produção.
Onde a Mestres da Web aplica a classe Scanner em projetos reais?
Em nossos projetos na Mestres da Web, usamos o Scanner em scripts internos, automações de QA e protótipos de software sob medida, antes de migrar a solução definitiva para APIs mais robustas como BufferedReader ou Spring Boot em ambiente de produção.
Quanto custa desenvolver um sistema em Java com leitura de dados?
O custo de um sistema em Java varia conforme escopo, integrações e complexidade, mas um projeto sob medida na Mestres da Web parte de diagnóstico gratuito e orçamento personalizado. Para uma estimativa inicial, converse com nosso time pelo canal de contato e descreva sua necessidade.
Para se aprofundar ainda mais em como funciona classe Scanner no dia a dia, confira outros artigos no blog da Mestres da Web ou solicite um diagnóstico gratuito pelo nosso canal de contato.
Leia também
- Programação criar seu: Como Desenvolver Software do Zero
- Conheça estrutura repetição do-while em Java
- Framework Desenvolvimento Quais: Os Mais Usados em 2026
- Framework Ferramenta Acelera: O Que É e Como Usar






