Input di stringhe multiple in Java utilizzando lo scanner [con esempio di codifica]

Pubblicato: 2021-02-05

Sommario

introduzione

Nel pacchetto java.util, lo scanner è una delle classi che aiutano a raccogliere più input di tipi primitivi come double, integer, strings, ecc. Sebbene non sia un modo efficiente per leggere gli input in un programma Java in cui il tempo agisce come vincolo, è senza dubbio uno dei modi più semplici per raccogliere più input dall'utente. In questo blog imparerai come raccogliere più stringhe di input dall'utente in un programma Java usando la classe scanner.

Metodi per acquisire più input utilizzando lo scanner

È necessario importare il pacchetto java.util in un programma prima di utilizzare la classe Scanner. La tabella seguente elenca i metodi utilizzati per acquisire più input di tipo diverso dall'utente in un programma Java.

Metodo Ingressi
nextInt() Numero intero
nextFloat() Galleggiante
successivoDoppio() Doppio
successivoLungo() Lungo
successivoShort() Corto
prossimo() Singola parola
nextLine() Linea di stringhe
successivoBooleano() booleano

Utilizzo del metodo Java nextLine()

Il metodo java.util.Scanner.nextLine() restituisce la riga che è stata saltata facendo avanzare lo scanner oltre la riga corrente. Se viene fornito un separatore di riga alla fine della riga corrente, questo metodo lo esclude e restituisce il resto della stringa dalla riga corrente. Lo scanner è impostato all'inizio della riga successiva e legge l'intera stringa, compresi gli spazi bianchi delle parole.

La sintassi per il metodo nextLine() è la seguente:

Stringa pubblica nextLine()

Questo metodo genera le due eccezioni seguenti:

  • NoSuchElementException – Se la stringa è vuota o non viene trovata alcuna riga.
  • IllegalStateException – Se lo scanner è chiuso.

Esempio

L'esempio seguente mostra come il metodo java.util.Scanner.nextLine() raccoglie più input dall'utente.

importare java.util.Scanner;

classe pubblica SacnnerDemoMultipleString

{

public static void main(String[] args)

{

Demo scanner = nuovo Scanner(System.in);

System.out.print("Inserisci più input che vuoi stampare: ");

//prende un input intero

String[] string = new String [demo.nextInt()];

//consumo <invio> dall'input sopra

demo.nextLine();

for (int i = 0; i < string.length; i++)

{

stringa[i] = demo.nextLine();

}

System.out.println(“\nHai inserito il seguente input: “);

//per-ogni ciclo per stampare la stringa

for(Stringa stringa: stringa)

{

System.out.println(str);

// chiudi lo scanner

scanner.close();

}

}

}

Il programma precedente stamperà il seguente output

Inserisci più input che desideri stampare: 7

Misha

Harry

Roberto

Harvey

Jill

Rachele

Jennifer

Hai inserito il seguente input:

Misha

Harry

Roberto

Harvey

Jill

Rachele

Jennifer

Utilizzo del metodo Java nextInt()

Il metodo java.util.Scanner.nextInt() esegue la scansione dell'input fornito dall'utente come intero. Se viene trovato un numero intero, lo scanner avanza oltre l'input corrispondente.

La sintassi per il metodo nextInt() è la seguente:

Pubblico int nextInt()

Questo metodo genera le tre eccezioni seguenti:

  • InputMismatchException: se il token successivo non corrisponde all'espressione regolare intera o se il token successivo non rientra nell'intervallo.
  • NoSuchElementException – Se l'input è esaurito.
  • IllegalStateException – Se lo scanner è chiuso.

Esempio

L'esempio seguente mostra come il metodo java.util.Scanner.nextInt() raccoglie più input dall'utente.

// Programma Java per scansionare interi usando Scanner

// classe e stampa la loro media.

importare java.util.Scanner;

classe pubblica ScannerDemoInteger

{

public static void main(String[] args)

{

Demo scanner = nuovo Scanner(System.in);

// Inizializza la somma e il conteggio degli elementi di input

somma int = 0, conteggio = 0;

// Controlla se è presente un valore intero

mentre (demo.hasNextInt())

{

// Scansiona un valore intero

int num = demo.nextInt();

somma += numero;

contare++;

}

int media = somma / conteggio;

System.out.println(“Mean: ” + mean);

}

}

Il programma di cui sopra è alimentato con il seguente input:

101

223

238

892

99

500

728

Il programma precedente stamperà il seguente output:

Media: 397

Leggi anche: Progetto Java MVC

Utilizzo del metodo Java nextDouble()

Il metodo java.util.Scanner.nextDouble() esegue la scansione dell'input fornito dall'utente come double. Se viene trovata un'espressione regolare float, lo scanner avanza oltre l'input corrispondente.

La sintassi per il metodo nextInt() è la seguente:

public double nextDouble()

Questo metodo genera le tre eccezioni seguenti:

  • InputMismatchException: se il token successivo non corrisponde all'espressione regolare float o se il token successivo non rientra nell'intervallo.
  • NoSuchElementException – Se l'input è esaurito.
  • IllegalStateException – Se lo scanner è chiuso.

Esempio

L'esempio mostra come il metodo java.util.Scanner.nextDouble() raccoglie più input dall'utente.

// Programma Java per scansionare float usando Scanner

importare java.util.Scanner;

classe pubblica ScannerDoubleRegularExpression {

public static void main(String[] args) {

Stringa nuova = “Buongiorno! 3 + 3.0 = 6 vero”;

// scrive un nuovo oggetto scanner con l'oggetto String specificato

Demo scanner = nuovi scanner;

// usa la localizzazione USA per identificare i doppi nella stringa

demo.useLocale(Locale.US);

// cerca il prossimo doppio token e stampalo

while (demo.hasNext()) {

// se il successivo è un double, print found e l'espressione regolare float

se (demo.hasNextDouble()) {

System.out.println(“Trovato:” + demo.nextDouble());

}

// se non viene trovata una doppia espressione regolare, stampa "Non trovato" e il token

System.out.println("Non trovato:" + demo.next());

}

// chiudi lo scanner

scanner.close();

}

}

Il programma di cui sopra risulterà nel seguente output:

Non trovato: buono

Non trovato: Buongiorno!

Trovato: 3.0

Non trovato: +

Trovato: 3.0

Non trovato: =

Trovato: 6.0

Non trovato: vero

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

Ad esempio, i codici forniti in questo blog sono lo scopo e possono essere modificati in base alle esigenze di un individuo. Se sei interessato a saperne di più sullo sviluppo di software Java e full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, 9+ progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Che cos'è la classe Scanner in Java?

La classe Scanner consente di leggere i valori dalla tastiera senza utilizzare l'input della console di Java. L'input della console di Java è lento, così come il suo reindirizzamento. Scanner è più veloce e conveniente, quindi Scanner dovrebbe essere utilizzato al posto dell'input della console di Java. Scanner utilizza il flusso di input normale di Java, quindi può essere concatenato con altri parser. Lo scanner è anche più facile da usare rispetto all'input della console di Java. Scanner ha tre sottoclassi principali, vale a dire BufferedReader, InputStreamReader e FileReader. Il più generale è BufferedReader. BufferedReader può leggere tutto ciò che può essere letto da InputStreamReader e ha un grande vantaggio: buffer. Il buffer può contenere una riga alla volta. Un flusso di input non ha alcun buffer: quando chiami next(), restituisce il valore. Ciò significa che devi raccogliere i valori prima di poter fare qualsiasi cosa con loro. Lo scanner lo fa per te.

Che cos'è un generatore di stringhe in Java?

Un generatore di stringhe è un nuovo tipo di classe per creare una stringa. La classe string builder è stata introdotta in Java dalla versione 1.3. Ti consente di creare una stringa concatenando un numero di stringhe e si ridimensionerà automaticamente man mano che aggiungi più stringhe. Rispetto alla concatenazione di stringhe, l'utilizzo di String Builder è più veloce e flessibile, sebbene sia meno leggibile. Gli oggetti StringBuilder sono oggetti utilizzati per creare valori String. Gli oggetti StringBuilder hanno diversi metodi.

Che cos'è un InputStreamReader in Java?

InputStreamReader legge un flusso di caratteri da un flusso di input e li decodifica in una codifica di caratteri specificata. Fornisce un modo semplice per convertire i flussi di caratteri da una codifica all'altra. InputStreamReader legge i byte dal flusso sottostante e li converte in caratteri usando la codifica del set di caratteri specificata. È una classe utilizzata per convertire i dati del flusso di byte in dati del flusso di caratteri. Il flusso di byte rappresenta i dati binari e il flusso di caratteri rappresenta il testo.