A classe Scanner em Java é encontrada no pacote java.util. Java fornece várias maneiras de ler a entrada do teclado, a classe java.util.Scanner é uma delas.
A classe Java Scanner divide a entrada em tokens usando um delimitador que é um espaço em branco por padrão. Ele fornece muitos métodos para ler e analisar vários valores primitivos.
A classe Java Scanner é amplamente usada para analisar texto em busca de strings e tipos primitivos usando uma expressão regular. É a maneira mais simples de obter informações em Java. Com a ajuda do Scanner em Java, podemos obter informações do usuário em tipos primitivos como int, long, double, byte, float, short, etc.
onclick javascript
A classe Java Scanner estende a classe Object e implementa interfaces Iterator e Closeable.
A classe Java Scanner fornece métodos nextXXX() para retornar o tipo de valor, como nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), etc. . Para obter um único caractere do scanner, você pode chamar o método next().charAt(0) que retorna um único caractere.
Madhubala
Declaração de classe do scanner Java
public final class Scanner extends Object implements Iterator
Como obter o scanner Java
Para obter a instância do Java Scanner que lê a entrada do usuário, precisamos passar o fluxo de entrada (System.in) no construtor da classe Scanner. Por exemplo:
Scanner in = new Scanner(System.in);
Para obter a instância do Java Scanner que analisa as strings, precisamos passar as strings no construtor da classe Scanner. Por exemplo:
Scanner in = new Scanner('Hello Javatpoint');
Construtores de classe Java Scanner
SN | Construtor | Descrição |
---|---|---|
1) | Scanner (fonte do arquivo) | Ele constrói um novo Scanner que produz valores digitalizados do arquivo especificado. |
2) | Scanner(Fonte do arquivo, String charsetName) | Ele constrói um novo Scanner que produz valores digitalizados do arquivo especificado. |
3) | Scanner (fonte InputStream) | Ele constrói um novo Scanner que produz valores varridos do fluxo de entrada especificado. |
4) | Scanner (fonte InputStream, String charsetName) | Ele constrói um novo Scanner que produz valores varridos do fluxo de entrada especificado. |
5) | Scanner (fonte legível) | Ele constrói um novo Scanner que produz valores digitalizados da fonte especificada. |
6) | Scanner (fonte da string) | Ele constrói um novo Scanner que produz valores verificados a partir da string especificada. |
7) | Scanner (fonte ReadableByteChannel) | Ele constrói um novo Scanner que produz valores varridos do canal especificado. |
8) | Scanner (fonte ReadableByteChannel, String charsetName) | Ele constrói um novo Scanner que produz valores varridos do canal especificado. |
9) | Scanner (fonte do caminho) | Ele constrói um novo Scanner que produz valores digitalizados do arquivo especificado. |
10) | Scanner(Origem do caminho, String charsetName) | Ele constrói um novo Scanner que produz valores digitalizados do arquivo especificado. |
Métodos de classe Java Scanner
A seguir está a lista de métodos do Scanner:
SN | Modificador e tipo | Método | Descrição |
---|---|---|---|
1) | vazio | fechar() | É usado para fechar este scanner. |
2) | padrão | delimitador() | É usado para obter o Padrão que a classe Scanner está usando atualmente para corresponder aos delimitadores. |
3) | Fluxo | encontrar tudo() | É usado para encontrar um fluxo de resultados de correspondência que corresponda à sequência de padrões fornecida. |
4) | Corda | encontrarInLine() | É usado para encontrar a próxima ocorrência de um padrão construído a partir da string especificada, ignorando os delimitadores. |
5) | corda | encontrar dentro do horizonte () | É usado para encontrar a próxima ocorrência de um padrão construído a partir da string especificada, ignorando os delimitadores. |
6) | boleano | temPróximo() | Ele retorna verdadeiro se este scanner tiver outro token em sua entrada. |
7) | boleano | hasNextBigDecimal() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como BigDecimal usando o método nextBigDecimal() ou não. |
8) | boleano | hasNextBigInteger() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como BigDecimal usando o método nextBigDecimal() ou não. |
9) | boleano | hasNextBoolean() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como booleano usando o método nextBoolean() ou não. |
10) | boleano | temNextByte() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como um Byte usando o método nextBigDecimal() ou não. |
onze) | boleano | hasNextDouble() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como BigDecimal usando o método nextByte() ou não. |
12) | boleano | hasNextFloat() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como Float usando o método nextFloat() ou não. |
13) | boleano | hasNextInt() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como um int usando o método nextInt() ou não. |
14) | boleano | temPróximaLinha() | É utilizado para verificar se existe ou não outra linha na entrada deste scanner. |
quinze) | boleano | hasNextLong() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como Long usando o método nextLong() ou não. |
16) | boleano | hasNextShort() | É usado para verificar se o próximo token na entrada deste scanner pode ser interpretado como Short usando o método nextShort() ou não. |
17) | IOException | ioException() | Ele é usado para obter o IOException lançado pela última vez pelo legível deste Scanner. |
18) | Local | local() | É usado para obter um Locale da classe Scanner. |
19) | Resultado da partida | corresponder() | É usado para obter o resultado da correspondência da última operação de digitalização realizada por este scanner. |
vinte) | Corda | próximo() | É usado para obter o próximo token completo do scanner que está em uso. |
vinte e um) | GrandeDecimal | próximoBigDecimal() | Ele verifica o próximo token da entrada como BigDecimal. |
22) | Grande número inteiro | próximoBigInteger() | Ele verifica o próximo token da entrada como BigInteger. |
23) | boleano | próximoBoolean() | Ele verifica o próximo token da entrada em um valor booleano e retorna esse valor. |
24) | byte | próximoByte() | Ele verifica o próximo token da entrada como um byte. |
25) | dobro | próximoDuplo() | Ele verifica o próximo token da entrada como um duplo. |
26) | flutuador | próximoFloat() | Ele verifica o próximo token da entrada como um float. |
27) | interno | próximoInt() | Ele verifica o próximo token da entrada como um Int. |
28) | Corda | próximaLinha() | É usado para obter a string de entrada que foi ignorada do objeto Scanner. |
29) | longo | próximoLong() | Ele verifica o próximo token da entrada como um comprimento. |
30) | curto | próximoCurto() | Ele verifica o próximo token da entrada como um short. |
31) | interno | raiz() | É usado para obter a raiz padrão do uso do Scanner. |
32) | vazio | remover() | É usado quando a operação de remoção não é suportada por esta implementação do Iterator. |
33) | Scanner | reiniciar() | É usado para reiniciar o Scanner que está em uso. |
3.4) | Scanner | pular() | Ele ignora a entrada que corresponde ao padrão especificado, ignorando os delimitadores |
35) | Fluxo | fichas() | É usado para obter um fluxo de tokens separados por delimitador do objeto Scanner que está em uso. |
36) | Corda | para sequenciar() | É usado para obter a representação de string do Scanner usando. |
37) | Scanner | useDelimitador() | É usado para definir o padrão de delimitação do Scanner que está em uso para o padrão especificado. |
38) | Scanner | usarLocale() | É usado para definir o objeto de localidade deste scanner para a localidade especificada. |
39) | Scanner | usarRadix() | É usado para definir a base padrão do Scanner que está em uso para a base especificada. |
Exemplo 1
Vamos ver um exemplo simples de Java Scanner onde obtemos uma única entrada do usuário. Aqui, estamos solicitando uma string por meio do método in.nextLine().
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
Saída:
algoritmos de pesquisa binária
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Exemplo 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
Saída:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
Exemplo 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
Saída:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /