logo

Scanner Java

La classe scanner in Java si trova nel pacchetto java.util. Java offre vari modi per leggere l'input dalla tastiera, la classe java.util.Scanner è uno di questi.

La classe Java Scanner suddivide l'input in token utilizzando un delimitatore che per impostazione predefinita è uno spazio bianco. Fornisce molti metodi per leggere e analizzare vari valori primitivi.

La classe Java Scanner è ampiamente utilizzata per analizzare il testo alla ricerca di stringhe e tipi primitivi utilizzando un'espressione regolare. È il modo più semplice per ottenere input in Java. Con l'aiuto di Scanner in Java, possiamo ottenere input dall'utente in tipi primitivi come int, long, double, byte, float, short, ecc.

La classe Java Scanner estende la classe Object e implementa le interfacce Iterator e Closeable.

La classe Java Scanner fornisce metodi nextXXX() per restituire il tipo di valore come nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), ecc. Per ottenere un singolo carattere dallo scanner, puoi chiamare il metodo next().charAt(0) che restituisce un singolo carattere.

Dichiarazione della classe dello scanner Java

 public final class Scanner extends Object implements Iterator 

Come ottenere lo scanner Java

Per ottenere l'istanza di Java Scanner che legge l'input dell'utente, dobbiamo passare il flusso di input (System.in) nel costruttore della classe Scanner. Per esempio:

 Scanner in = new Scanner(System.in); 

Per ottenere l'istanza di Java Scanner che analizza le stringhe, dobbiamo passare le stringhe nel costruttore della classe Scanner. Per esempio:

 Scanner in = new Scanner('Hello Javatpoint'); 

Costruttori di classi Java Scanner

SN Costruttore Descrizione
1) Scanner (origine file) Costruisce un nuovo scanner che produce valori scansionati dal file specificato.
2) Scanner (origine file, stringa nomesetcaratteri) Costruisce un nuovo scanner che produce valori scansionati dal file specificato.
3) Scanner (sorgente InputStream) Costruisce un nuovo scanner che produce valori scansionati dal flusso di input specificato.
4) Scanner (origine InputStream, stringa charsetName) Costruisce un nuovo scanner che produce valori scansionati dal flusso di input specificato.
5) Scanner (fonte leggibile) Costruisce un nuovo Scanner che produce valori scansionati dalla fonte specificata.
6) Scanner (origine stringa) Costruisce un nuovo Scanner che produce valori scansionati dalla stringa specificata.
7) Scanner (sorgente ReadableByteChannel) Costruisce un nuovo scanner che produce valori scansionati dal canale specificato.
8) Scanner (sorgente ReadableByteChannel, stringa charsetName) Costruisce un nuovo scanner che produce valori scansionati dal canale specificato.
9) Scanner (origine del percorso) Costruisce un nuovo scanner che produce valori scansionati dal file specificato.
10) Scanner(Origine del percorso, String charsetName) Costruisce un nuovo scanner che produce valori scansionati dal file specificato.

Metodi di classe Java Scanner

Di seguito è riportato l'elenco dei metodi scanner:

SN Modificatore e tipo Metodo Descrizione
1) vuoto vicino() Viene utilizzato per chiudere questo scanner.
2) modello delimitatore() Viene utilizzato per ottenere il Pattern attualmente utilizzato dalla classe Scanner per far corrispondere i delimitatori.
3) Flusso trova tutto() Viene utilizzato per trovare un flusso di risultati di corrispondenza che corrispondono alla stringa di modello fornita.
4) Corda trovaInLine() Viene utilizzato per trovare l'occorrenza successiva di un modello costruito dalla stringa specificata, ignorando i delimitatori.
5) corda trovaAll'Orizzonte() Viene utilizzato per trovare l'occorrenza successiva di un modello costruito dalla stringa specificata, ignorando i delimitatori.
6) booleano haSuccessivo() Restituisce vero se questo scanner ha un altro token nel suo input.
7) booleano hasNextBigDecimal() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come BigDecimal utilizzando il metodo nextBigDecimal() oppure no.
8) booleano hasNextBigInteger() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come BigDecimal utilizzando il metodo nextBigDecimal() oppure no.
9) booleano hasNextBoolean() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come booleano utilizzando il metodo nextBoolean() oppure no.
10) booleano hasNextByte() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come un byte utilizzando il metodo nextBigDecimal() oppure no.
undici) booleano hasNextDouble() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come BigDecimal utilizzando il metodo nextByte() oppure no.
12) booleano hasNextFloat() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come Float utilizzando il metodo nextFloat() oppure no.
13) booleano hasNextInt() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come un int utilizzando il metodo nextInt() oppure no.
14) booleano haRigaProssima() Viene utilizzato per verificare se è presente o meno un'altra riga nell'input di questo scanner.
quindici) booleano haNextLong() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come Long utilizzando il metodo nextLong() oppure no.
16) booleano haNextShort() Viene utilizzato per verificare se il token successivo nell'input di questo scanner può essere interpretato come Short utilizzando il metodo nextShort() oppure no.
17) IOException ioException() Viene utilizzato per ottenere l'ultima IOException lanciata dal file leggibile di questo scanner.
18) Locale locale() Viene utilizzato per ottenere un Locale della classe Scanner.
19) Risultato della partita incontro() Viene utilizzato per ottenere il risultato della corrispondenza dell'ultima operazione di scansione eseguita da questo scanner.
venti) Corda Prossimo() Viene utilizzato per ottenere il successivo token completo dallo scanner in uso.
ventuno) BigDecimal nextBigDecimal() Esegue la scansione del token successivo dell'input come BigDecimal.
22) BigInteger nextBigInteger() Esegue la scansione del token successivo dell'input come BigInteger.
23) booleano nextBooleano() Esegue la scansione del token successivo dell'input in un valore booleano e restituisce quel valore.
24) byte nextByte() Esegue la scansione del token successivo dell'input come byte.
25) Doppio successivoDoppio() Esegue la scansione del token successivo dell'input come doppio.
26) galleggiante successivoFloat() Esegue la scansione del token successivo dell'input come float.
27) int nextInt() Esegue la scansione del token successivo dell'input come Int.
28) Corda riga successiva() Viene utilizzato per ottenere la stringa di input che è stata saltata dell'oggetto Scanner.
29) lungo successivoLong() Esegue la scansione del token successivo dell'input come se fosse lungo.
30) corto successivoBreve() Esegue la scansione del token successivo dell'input come short.
31) int radice() Viene utilizzato per ottenere la radice predefinita dell'utilizzo dello scanner.
32) vuoto rimuovere() Viene utilizzato quando l'operazione di rimozione non è supportata da questa implementazione di Iterator.
33) Scanner Ripristina() Viene utilizzato per ripristinare lo scanner in uso.
3.4) Scanner saltare() Salta l'input che corrisponde al modello specificato, ignorando i delimitatori
35) Flusso gettoni() Viene utilizzato per ottenere un flusso di token separati da delimitatori dall'oggetto Scanner in uso.
36) Corda accordare() Viene utilizzato per ottenere la rappresentazione della stringa di Scanner utilizzando.
37) Scanner utilizzareDelimitatore() Viene utilizzato per impostare il modello di delimitazione dello scanner in uso sul modello specificato.
38) Scanner usaLocale() Viene utilizzato per impostare l'oggetto locale di questo scanner sulla locale specificata.
39) Scanner usaRadix() Viene utilizzato per impostare la radice predefinita dello scanner in uso sulla radice specificata.

Esempio 1

Vediamo un semplice esempio di Java Scanner in cui riceviamo un singolo input dall'utente. Qui, stiamo chiedendo una stringa tramite il metodo 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(); } } 

Produzione:

 Enter your name: sonoo jaiswal Name is: sonoo jaiswal 

Esempio 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(); } } 

Produzione:

 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 

Esempio 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(); } } 

Produzione:

 Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /