Scanner Java (com exemplos)

Neste tutorial, aprenderemos sobre o Java Scanner e seus métodos com a ajuda de exemplos.

A Scannerclasse do java.utilpacote é usada para ler dados de entrada de diferentes fontes, como fluxos de entrada, usuários, arquivos, etc. Vamos dar um exemplo.

Exemplo 1: ler uma linha de texto usando um scanner

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )

Resultado

 Digite seu nome: Kelvin Meu nome é Kelvin

No exemplo acima, observe a linha

 Scanner input = new Scanner(System.in);

Aqui, criamos um objeto de Scannerentrada nomeada.

O System.inparâmetro é usado para obter a entrada da entrada padrão. Funciona da mesma forma que receber entradas do teclado.

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

Agora que você tem alguma ideia Scanner, vamos explorar mais a respeito.

Importar classe de scanner

Como podemos ver no exemplo acima, precisamos importar o java.util.Scannerpacote antes de usar a Scannerclasse.

 import java.util.Scanner;

Para saber mais sobre como importar pacotes, visite Pacotes Java.

Crie um objeto Scanner em Java

Depois de importar o pacote, aqui está como podemos criar Scannerobjetos.

 // read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);

Aqui, criamos objetos da Scannerclasse que lerão a entrada de InputStream, File e String, respectivamente.

Métodos de scanner Java para obter informações

A Scannerclasse fornece vários métodos que nos permitem ler entradas de diferentes tipos.

Método Descrição
nextInt() lê um intvalor do usuário
nextFloat() lê um floatvalor do usuário
nextBoolean() lê um booleanvalor do usuário
nextLine() lê uma linha de texto do usuário
next() lê uma palavra do usuário
nextByte() lê um bytevalor do usuário
nextDouble() lê um doublvalor e do usuário
nextShort() lê um shortvalor do usuário
nextLong() lê um longvalor do usuário

Exemplo 2: Java Scanner nextInt ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )

Resultado

 Insira um número inteiro: 22 Usando nextInt (): 22

No exemplo acima, usamos o nextInt()método para ler um valor inteiro.

Exemplo 3: Java Scanner nextDouble ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )

Resultado

 Insira o valor duplo: 33,33 Usando nextDouble (): 33,33

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

Exemplo 4: Java Scanner next ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )

Resultado

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

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

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

Isso ocorre porque o next()método lê a entrada até o caractere de espaço em branco . Quando o espaço em branco é encontrado, ele retorna a string (excluindo o espaço em branco).

Exemplo 5: Java Scanner nextLine ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )

Resultado

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

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

Ao contrário next(), o nextLine()método lê toda a linha de entrada, incluindo espaços. O método é encerrado quando encontra um caractere de próxima linha ,.

Recommended Reading: Java Scanner skipping the nextLine().

Java Scanner with BigInteger and BigDecimal

Java scanner can also be used to read the big integer and big decimal numbers.

  • nextBigInteger() - reads the big integer value from the user
  • nextBigDecimal() - reads the big decimal value from the user

Example 4: Read BigInteger and BigDecimal

 import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )

Output

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

In the above example, we have used the java.math.BigInteger and java.math.BigDecimal package to read BigInteger and BigDecimal respectively.

Working of Java Scanner

A Scannerclasse lê uma linha inteira e divide a linha em tokens. Tokens são pequenos elementos que têm algum significado para o compilador Java. Por exemplo,

Suponha que haja uma string de entrada:

 He is 22

Nesse caso, o objeto do scanner lerá a linha inteira e dividirá a string em tokens: " He ", " is " e " 22 ". O objeto então itera sobre cada token e lê cada um usando seus diferentes métodos.

Nota : Por padrão, o espaço em branco é usado para dividir tokens.

Artigos interessantes...