Come usare lo scanner in java

Come usare lo scanner in java
Lo scanner in Java è una classe in Java.pacchetto util. Questa classe mira a leggere l'input da una stringa, la tastiera, il file o il socket di rete. Questo articolo si concentra solo sulla lettura dell'input dalla tastiera e sulla visualizzazione del risultato alla finestra del terminale. Idee simili possono essere utilizzate per leggere l'input dal file o dal canale di rete. Lo scanner non sta stampando sulla finestra del terminale. Per stampare sul terminale, utilizzare il sistema.out oggetto. È semplice usare questo oggetto per stampare sul terminale, come illustrato di seguito.

Per utilizzare la classe scanner, deve essere importato per primo. Dopodiché, un oggetto deve essere istanziato da esso. Dopo aver usato l'oggetto scanner, deve essere chiuso. L'oggetto flusso di input che rappresenta la tastiera è il sistema.In. Lo scanner ha molti metodi. Solo quelli comunemente usati saranno spiegati in questo articolo.

Contenuto dell'articolo

  • Uso semplice della classe scanner
  • Sputare la riga di input in valori
  • Lettura e convalida dei tipi di dati primitivi
  • Assegnazione del token di input a una variabile
  • Conclusione

Uso semplice della classe scanner

Il seguente codice chiede all'utente di digitare una frase, quindi visualizza la frase:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Scanner ScanOBJ = Nuovo scanner (sistema.In);
Sistema.fuori.println ("Digitare una frase e premere Invio:");
Stringa frase = scanobj.NextLine ();
Sistema.fuori.println (frase);
Scanobj.vicino();

La prima riga importa la classe scanner. Nella funzione principale, la prima riga crea un oggetto scanner usando il "sistema.in "oggetto per la tastiera. Non appena viene creato l'oggetto scanner, inizia ad aspettare l'input. La riga successiva stampa una dichiarazione, chiedendo all'utente di digitare una frase. La riga che segue nel codice utilizza il metodo NextLine () dell'oggetto scanner per leggere la frase dell'utente dopo aver premuto Invio. La riga dopo, nel codice, ristampa la frase alla finestra del terminale. L'ultima riga chiude l'oggetto scanner.

Sputare la riga di input in valori

Il seguente codice divide la riga di input in parole (token), usando lo spazio come delimitatore:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Scanner ScanOBJ = Nuovo scanner (sistema.In);
Sistema.fuori.println ("Digitare una riga di token e premere Invio:");
mentre (Scanobj.hasNext ())
Sistema.fuori.println (scanobj.Prossimo());

Scanobj.vicino();

Hasnext () e Next () sono altri due metodi dell'oggetto scanner. Quando l'oggetto scanner legge una riga, la mantiene. Next () accede al token successivo (parola). Hasnext () restituisce vero se non c'è ancora un altro token.

Sfortunatamente, l'utente dovrebbe ancora digitare input per la scissione e il ri-scambiarsi con questo codice. Per terminare tutto ciò, premere Ctrl+Z e dovresti tornare al prompt dei comandi.

Nel codice sopra, il delimitatore separa i token nello spazio. Un altro personaggio può essere usato. Il seguente codice utilizza la virgola. Non dimenticare di premere Ctrl+Z per terminare il loop se si verifica il codice.

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Scanner ScanOBJ = Nuovo scanner (sistema.In);
Sistema.fuori.println ("Digitare una riga di token e premere Invio:");
Scanobj.usasselimiter (",");
mentre (Scanobj.hasNext ())
Sistema.fuori.println (scanobj.Prossimo());

Scanobj.vicino();

Se hai testato il codice, avresti notato che gli spazi in token sono stati inclusi come parte di token (output). L'espressione, scanobj.usasselimiter (","); Digitato dopo che la riga di input è stata letta; È ciò che rende la virgola, il delimitatore.

Lettura e convalida dei tipi di dati primitivi

metodo NextBoolean ()

Nel codice seguente, l'utente dovrebbe digitare "vero" o "falso" senza quota visualizzato.

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Sistema.fuori.stampa ("sei sopra 24? ");
Scanner ScanOBJ = Nuovo scanner (sistema.In);
booleano bl = scanobj.NextBoolean ();
if (bl == true)
Sistema.fuori.println ("hai più di 24");

else if (bl == false)
Sistema.fuori.println ("hai meno di 24");

Scanobj.vicino();

Poiché Java emetterà un messaggio di errore fintanto che l'input non è vero o falso, il "else se" è stato usato al posto di "altro".

La differenza tra i metodi, stampa e println, è che la stampa prevede l'input sulla riga corrente, mentre Println si aspetta l'input sulla riga successiva.

metodo NextByte ()

Con il set di caratteri ASCII, un personaggio è un byte. Tuttavia, con alcuni set di personaggi orientali, un personaggio può essere costituito da più di un byte. Indipendentemente dal set di caratteri, il metodo NextByte legge e convalida il byte successivo dell'input. Il seguente codice può essere utilizzato per questo scopo:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Sistema.fuori.Stampa ("Numero digitare < 128, press Enter: ");
Scanner ScanOBJ = Nuovo scanner (sistema.In);
byte bt = scanobj.NextByte ();
Sistema.fuori.println (bt);
Scanobj.vicino();

Se un numero maggiore di 127 o un carattere alfabeto viene inserito per questo codice, verrà emesso un messaggio di errore.

metodo NextInt ()

Il prossimo token intero come input può anche essere convalidato e accettato. È possibile utilizzare il seguente codice:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Sistema.fuori.print ("Immettere qualsiasi numero intero:");
Scanner ScanOBJ = Nuovo scanner (sistema.In);
int num = scanobj.NextInt ();
Sistema.fuori.println (num);
Scanobj.vicino();

Sono stati rimossi spazi leader o finali. Per questo codice, qualsiasi valore intero, compresi valori superiori a 127, sarebbe accettato. Con questi metodi NextXxx (), una volta che la convalida non riesce, viene emesso un messaggio di errore.

NextBigInteger () Metodo

Sembra che gli ingegneri del software non smetteranno mai di trovare cose nuove. Un grande numero intero è un numero intero il cui valore è molto più grande di quello di un numero intero. Tuttavia, con Java, può essere letto allo stesso modo del numero intero. Il seguente codice illustra questo:

Importa Java.util.Scanner;
Importa Java.matematica.Biginteger;
Classe pubblica TheClass
public static void main (string [] args)
Sistema.fuori.println ("Inserisci qualsiasi intero per grande intero:");
Scanner ScanOBJ = Nuovo scanner (sistema.In);
Biginteger num = scanobj.NextBigInteger ();
Sistema.fuori.println (num);
Scanobj.vicino();

Nota l'istruzione di importazione, "Import Java.matematica.Biginteger; ". Inoltre, si noti che il tipo di intero grande è iniziato con una B maiuscola B e non una berlina B.

NextFloat () Metodo

Il prossimo token float come input può anche essere convalidato e accettato. È possibile utilizzare il seguente codice:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Sistema.fuori.print ("Inserisci qualsiasi galleggiante:");
Scanner ScanOBJ = Nuovo scanner (sistema.In);
float num = scanobj.NextFloat ();
Sistema.fuori.println (num);
Scanobj.vicino();

Un esempio di numero di galleggiante è 23.456. Sono stati rimossi spazi leader o finali.

NextDouble ()

Il prossimo doppio token come input può anche essere convalidato e accettato. È possibile utilizzare il seguente codice:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Sistema.fuori.print ("Immettere qualsiasi doppio:");
Scanner ScanOBJ = Nuovo scanner (sistema.In);
Double num = scanobj.NextDouble ();
Sistema.fuori.println (num);
Scanobj.vicino();

Un esempio di doppio numero è 23.456. Un doppio numero è diverso da un galleggiante perché ha meno margine di errore. Sono stati rimossi spazi leader o finali.

NextLine () Metodo

Il metodo NextLine () è per una stringa. Se la stringa è la riga di input dalla tastiera dopo aver premuto ENTER, può avere il carattere newline, '\ n'. È possibile utilizzare il seguente codice:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Sistema.fuori.println ("Immettere una riga con \\ n:");
Scanner ScanOBJ = Nuovo scanner (sistema.In);
Stringa str = scanobj.NextLine ();
Sistema.fuori.println (str);
Scanobj.vicino();

Si noti che il tipo di stringa viene avviato con la maiuscola s e non la minestina s.

I metodi NextLine (), Hasnext () e Next () sono stati usati in precedenza, in questo articolo. Lo scanner ha altri metodi e altri metodi di dati primitivi - vedi più avanti.

Assegnare l'input a una variabile

L'input può essere assegnato a una variabile, come mostra il seguente codice:

Importa Java.util.Scanner;
Classe pubblica TheClass
public static void main (string [] args)
Scanner ScanOBJ = Nuovo scanner (sistema.In);
Sistema.fuori.print ("Invio nome:");
Nome stringa = scanobj.NextLine ();
Sistema.fuori.print ("Inserisci età:");
int age = scanobj.NextInt ();
Sistema.fuori.print ("Inserisci stipendio:");
doppio stipendio = scanobj.NextDouble ();
Sistema.fuori.println ("nome:" + nome + ", età:" + età + ", stipendio:" + stipendio);
Scanobj.vicino();

Conclusione

Lo scanner in Java è una classe in Java.pacchetto util. Questa classe mira a leggere l'input da una stringa, la tastiera, il file o il socket di rete. Questo articolo si è concentrato principalmente sulla lettura dell'input dalla tastiera e sulla visualizzazione del risultato alla finestra del terminale. Idee simili possono essere utilizzate per leggere l'input dalla stringa, file o canale di rete.

Per leggere l'intera riga di input della tastiera, utilizzare il metodo NextLine (). La linea come stringa può essere divisa in token, usando i metodi HasNext () e Next () e il ciclo while. Il delimitatore predefinito per la divisione è lo spazio, ma il programmatore può scegliere un altro delimitatore. Non dimenticare di fare Ctrl+Z per fermare il ciclo while, se necessario. La rimozione di spazi leader e finali può essere eseguita utilizzando altri schemi non affrontati in questo articolo. La convalida dei token può anche essere eseguita utilizzando altri schemi non affrontati in questo articolo.

I valori primitivi possono essere letti usando NextBoolean (), NextByte (), NextInt (), ecc. Questi metodi NextXxx () eseguono la convalida e rimuovono anche gli spazi di piombo e finale.

Lo scanner Java ha molti altri metodi. Tuttavia, l'uso di base dello scanner è stato spiegato in questo articolo. La selezione di un token viene effettivamente eseguita usando le tecniche di espressione regolari. L'uso di tecniche di espressione regolari è la discussione, per qualche altra volta.