Classe de scanner Java
Classe de scanner Java
Neste tutorial, aprenderemos sobre o Java Scanner e seus métodos com a ajuda de exemplos.
O Scanner
classe do java.util
O pacote é usado 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 o 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();
}
}
Saída
Enter your name: Kelvin My name is Kelvin
No exemplo acima, observe a linha
Scanner input = new Scanner(System.in);
Aqui, criamos um objeto de
Scanner
chamado entrada . O
System.in
parâmetro é usado para obter entrada da entrada padrão. Funciona como receber entradas do teclado. Em seguida, usamos o
nextLine()
método do Scanner
class para ler uma linha de texto do usuário. Agora que você tem alguma ideia sobre
Scanner
, vamos explorar mais sobre isso. Importar classe de scanner
Como podemos ver no exemplo acima, precisamos importar o
java.util.Scanner
pacote antes de podermos usar o Scanner
classe.
import java.util.Scanner;
Para saber mais sobre como importar pacotes, visite Pacotes Java.
Criar um objeto Scanner em Java
Depois de importar o pacote, veja como podemos criar
Scanner
objetos.
// 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 do
Scanner
classe que lerá a entrada de InputStream, File e String, respectivamente. Métodos do scanner Java para receber entradas
O
Scanner
classe fornece vários métodos que nos permitem ler entradas de diferentes tipos. Método | Descrição |
---|---|
nextInt() | lê um int valor do usuário |
nextFloat() | lê um float valor do usuário |
nextBoolean() | lê um boolean valor do usuário |
nextLine() | lê uma linha de texto do usuário |
next() | lê uma palavra do usuário |
nextByte() | lê um byte valor do usuário |
nextDouble() | lê um doubl e valor do usuário |
nextShort() | lê um short valor do usuário |
nextLong() | lê um long valor 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();
}
}
Saída
Enter an integer: 22 Using 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();
}
}
Saída
Enter Double value: 33.33 Using 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();
}
}
Saída
Enter your name: Jonny Walker Using 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()
O método lê a entrada até o espaço em branco personagem. Uma vez que o espaço em branco for encontrado, ele retornará 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();
}
}
Saída
Enter your name: Jonny Walker Using nextLine(): Jonny Walker
No primeiro exemplo, usamos o
nextLine()
método para ler uma string do usuário. Ao contrário de
next()
, o nextLine()
O método lê toda a linha de entrada, incluindo espaços. O método é encerrado quando encontra um caractere de próxima linha, \n
. Leitura recomendada: Java Scanner pulando o nextLine().
Java Scanner com BigInteger e BigDecimal
O scanner Java também pode ser usado para ler os números inteiros e decimais grandes.
- nextBigInteger() - lê o valor inteiro grande do usuário
- nextBigDecimal() - lê o grande valor decimal do usuário
Exemplo 4:leia BigInteger e 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();
}
}
Saída
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
No exemplo acima, usamos o
java.math.BigInteger
e java.math.BigDecimal
pacote para ler BigInteger
e BigDecimal
respectivamente. Funcionamento do Java Scanner
O
Scanner
A classe 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 scanner lerá a linha inteira e dividirá a string em tokens:"He ", "é " e "22 ". O objeto então itera sobre cada token e lê cada token usando seus diferentes métodos.
Observação :Por padrão, o espaço em branco é usado para dividir tokens.
Java