English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Controle de fluxo do Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Fila (Queue)

Java Conjunto (Map)

Java Conjunto (Set)

Java Entrada e Saída (I)/O)

Reader do Java/Writer

Outros tópicos do Java

Java Scanner Class

Neste tutorial, vamos aprender sobre o Java Scanner e seus métodos com exemplos.

A classe PrintWriter do pacote java.io pode ser usada para escrever dados de saída em um formato legível (texto).

A classe Scanner do pacote java.util é usada para ler dados de entrada de diferentes fontes (por exemplo, fluxo de entrada, usuário, arquivo, etc.). Vamos dar um exemplo.

Exemplo1:Usar o scanner para ler uma linha de texto

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        //Criar um objeto Scanner
        Scanner input = new Scanner(System.in);
        System.out.print("Insira o nome: ");
        // Receber entrada do teclado
        String name = input.nextLine();
        // Imprimir a saída do nome
        System.out.println("Meu nome é " + name);
        // Fecha o scanner
        input.close();
    }
}

Output Result

Insira o nome: Jack
Meu nome é  Jack

No exemplo acima, note as seguintes linhas

Scanner input = new Scanner(System.in);

Aqui, criamos um objeto Scanner chamado input.

O parâmetro System.in é usado para obter entrada a partir da entrada padrão. É como obter entrada da tecla.

Em seguida, usamos o método nextLine() da classe Scanner para ler uma linha de texto do usuário.

Agora que você tem alguma compreensão sobre o Scanner, vamos explorá-lo mais profundamente.

Importar a classe scanner

Como pode ser visto no exemplo acima, precisamos importar o pacote java.util.Scanner antes de poder usar a classe Scanner.

import java.util.Scanner;

Criar um objeto de scanner em Java

Como mencionado anteriormente, após a importação do pacote, é possível criar o objeto Scanner.

//Ler entrada de fluxo de entrada
Scanner sc1 = new Scanner(InputStream input);
//Ler entrada de arquivo
Scanner sc2 = new Scanner(File file);
//Ler entrada de string
Scanner sc3 = new Scanner(String str);

Aqui, criamos objetos da classe Scanner, que serão usados para ler entrada deInputStream,leitura de entrada de arquivo e string.

Métodos de entrada do scanner do Java

A classe Scanner do Java oferece vários métodos que nos permitem ler diferentes tipos de entrada.

MétodoDescrição
nextInt()Ler valor int do usuário
nextFloat()Ler valor float do usuário
nextBoolean()Ler valor booleano do usuário
nextLine()Ler uma linha de texto do usuário
next()Ler uma palavra do usuário
nextByte()Ler valor byte do usuário
nextDouble()Ler valor double do usuário
nextShort()Ler valor short do usuário
nextLong()Ler valor long do usuário

Exemplo2:Método scanner nextInt() do Java

import java.util.Scanner;
class Main {
    public static void main(String[] args) {
        //Criar objeto scanner
        Scanner input = new Scanner(System.in);
        System.out.println("Inserir um inteiro: ")
        //Ler um valor int
        int data1 = input.nextInt();
        System.out.println("Usando nextInt(): ") + data1);
        input.close();
    }
}

Output Result

Inserir um inteiro:
22
Usando nextInt(): 22

No exemplo acima, usamos o método nextInt() para ler valores inteiros.

Exemplo3:Método scanner nextDouble() do Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Criar um objeto Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Inserir valor de precisão dupla: ")
      //Ler valor de precisão dupla
      double value = input.nextDouble();
      System.out.println("Usando nextDouble(): ") + value);
      input.close();
   }
}

Output Result

Inserir valor de precisão dupla: 33.33
Usando nextDouble(): 33.33

No exemplo acima, usamos o método nextDouble() para ler valores de ponto flutuante.

Exemplo4:Método scanner next() do Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Criar um objeto Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Digite seu nome: ");
      //Ler todo o palavras
      String value = input.next();
      System.out.println("Usando next(): ") + value);
      input.close();
   }
}

Output Result

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

No exemplo acima, usamos o método next() para ler uma string do usuário.

Aqui, fornecemos o nome completo. No entanto, o método next() apenas lê o nome.

Isso é porque o método next() lê a entrada atéespaçoscaracteres. Assim que encontra um espaço, retorna a string (sem espaços).

Exemplo5: Método nextLine() do scanner Java

import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Criar um objeto Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Digite seu nome: ");
      //Ler linha inteira
      String value = input.nextLine();
      System.out.println("Usando nextLine(): "); + value);
      input.close();
   }
}

Output Result

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

No primeiro exemplo, usamos o método nextLine() para ler uma string do usuário.

Diferente de next(), o método nextLine() lê a linha de entrada inteira, incluindo espaços. O método termina quando encontra o caractere de nova linha \n.

Scanner Java BigInteger e BigDecimal

O scanner Java pode ser usado para ler BigInteger e BigDecimal.

  • nextBigInteger() - Ler valor BigInteger do usuário

  • nextBigDecimal() - Ler valor BigDecimal do usuário

Exemplo4: Ler BigInteger e BigDecimal

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
class Main {
   public static void main(String[] args) {
      //Criar um objeto Scanner
      Scanner input = new Scanner(System.in);
      System.out.print("Digite um BigInteger: ");
      //Ler BigInteger
      BigInteger value1 = input.nextBigInteger();
      System.out.println("Usando nextBigInteger(): "); + value1);
      System.out.print("Digite um BigDecimal: ");
      //Ler BigDecimal
      BigDecimal value2 = input.nextBigDecimal();
      System.out.println("Using nextBigDecimal(): ") + value2);
      input.close();
   }
}

Output Result

Enter a large integer: 987654321
Using nextBigInteger(): 987654321
Enter a large decimal: 9.55555
Using nextBigDecimal(): 9.55555

In the above example, we use the java.math.BigInteger and java.math.BigDecimal packages to read BigInteger and BigDecimal, respectively.

How Java Scanner Works

The scanner class reads the entire line and splits the line into tokens. Tokens are small elements that have meaning to the Java compiler. For example

Assuming there is an input string:

He is 22

In this case, the scanner object will read the entire line and split the string into tokens: “ He ”,“ is ” and “ 22 ”. Then, the object traverses each token and uses its different methods to read each token.

NoteBy default, spaces are used to delimit tokens.