Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Dominando Java Scanner: Guia Completo com Exemplos Práticos

Dominando Java Scanner

Descubra como usar a classe Scanner do Java para ler texto, números e tipos complexos de várias fontes, apoiado por exemplos claros do mundo real.

A classe Scanner em java.util permite capturar entrada de streams, arquivos, strings e console. Abaixo percorremos seus padrões de uso principais.


Exemplo 1: Lendo uma Linha Completa de Texto

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        // Cria um Scanner que lê da entrada padrão
        Scanner input = new Scanner(System.in);
        System.out.print("Digite seu nome: ");
        // Lê uma linha inteira, incluindo espaços
        String nome = input.nextLine();
        System.out.println("Meu nome é " + nome);
        input.close();
    }
}

Saída

Digite seu nome: Kelvin
Meu nome é Kelvin

Note a linha Scanner input = new Scanner(System.in); – ela constrói um Scanner que escuta entrada do teclado.

O método nextLine() consome a linha toda até uma quebra de linha.


Importando a Classe Scanner

Antes de usar Scanner, importe-o:

import java.util.Scanner;

Para mais sobre imports de pacotes, veja Pacotes Java.


Criando Objetos Scanner

Dependendo da sua fonte de entrada, instancie um Scanner assim:

// De um input stream (ex: System.in)
Scanner sc1 = new Scanner(InputStream input);
// De um arquivo
Scanner sc2 = new Scanner(File file);
// De uma string
Scanner sc3 = new Scanner(String str);

Métodos Principais do Scanner para Entrada

A classe Scanner oferece uma variedade de métodos para ler diferentes tipos de dados. Abaixo está uma referência rápida:

MétodoDescrição
nextInt()Lê um int
nextFloat()Lê um float
nextBoolean()Lê um boolean
nextLine()Lê uma linha completa de texto
next()Lê uma única palavra (até whitespace)
nextByte()Lê um byte
nextDouble()Lê um double
nextShort()Lê um short
nextLong()Lê um long

Exemplo 2: Usando nextInt()

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Digite um inteiro: ");
        int dado1 = input.nextInt();
        System.out.println("Usando nextInt(): " + dado1);
        input.close();
    }
}

Saída

Digite um inteiro: 22
Usando nextInt(): 22

Exemplo 3: Usando nextDouble()

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Digite valor Double: ");
        double valor = input.nextDouble();
        System.out.println("Usando nextDouble(): " + valor);
        input.close();
    }
}

Saída

Digite valor Double: 33.33
Usando nextDouble(): 33.33

Exemplo 4: Usando next()

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Digite seu nome: ");
        String valor = input.next();
        System.out.println("Usando next(): " + valor);
        input.close();
    }
}

Saída

Digite seu nome: Jonny Walker
Usando next(): Jonny

Note que next() para no primeiro whitespace, então apenas o primeiro nome é capturado.


Exemplo 5: Usando nextLine()

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Digite seu nome: ");
        String valor = input.nextLine();
        System.out.println("Usando nextLine(): " + valor);
        input.close();
    }
}

Saída

Digite seu nome: Jonny Walker
Usando nextLine(): Jonny Walker

Diferente de next(), nextLine() captura a linha inteira, incluindo espaços, até um caractere de nova linha.

Leitura Recomendada: Java Scanner pulando nextLine()


Scanner com BigInteger e BigDecimal

Para números de alta precisão, Scanner suporta:

Exemplo: Lendo BigInteger e BigDecimal

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Digite um grande inteiro: ");
        BigInteger valor1 = input.nextBigInteger();
        System.out.println("Usando nextBigInteger(): " + valor1);
        System.out.print("Digite um grande decimal: ");
        BigDecimal valor2 = input.nextBigDecimal();
        System.out.println("Usando nextBigDecimal(): " + valor2);
        input.close();
    }
}

Saída

Digite um grande inteiro: 987654321
Usando nextBigInteger(): 987654321
Digite um grande decimal: 9.55555
Usando nextBigDecimal(): 9.55555

Como Scanner Funciona Internamente

Scanner lê uma linha inteira, então a divide em tokens usando whitespace por padrão. Cada token pode então ser recuperado com o método apropriado. Por exemplo, dada a entrada Ele tem 22, os tokens são Ele, tem e 22.

Dica: Tokens são separados por espaços, tabs ou novas linhas a menos que você personalize o delimitador.

Java

  1. Entendendo a Palavra-chave final em Java: Variáveis, Métodos e Classes
  2. Operador instanceof em Java: Guia Completo
  3. Entendendo Classes Aninhadas Estáticas em Java: Uso, Diferenças e Exemplos
  4. Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
  5. Padrão Singleton em Java Explicado: Como Implementar e Usar com Segurança
  6. Dominando Reflection em Java: Inspecionando Classes, Métodos e Campos em Tempo de Execução
  7. Dominando Java ObjectOutputStream: Serialização, Métodos e Exemplos Práticos
  8. Dominando Java Scanner: Guia Completo com Exemplos Práticos
  9. Dominando Java Generics – Construindo Código Reutilizável e Type-Safe
  10. Dominando Operações de Arquivo em Java com java.io – Criação, Leitura, Escrita e Exclusão