Ci sono molte situazioni in cui abbiamo bisogno di prendere l’input dall’utente secondo le sue esigenze. In questi casi non possiamo prendere gli input nel nostro programma piuttosto, dobbiamo prendere l’input dalla console all’esecuzione del programma. Java fornisce diversi modi per prendere l’input e fornire l’output sulla console. In questo articolo, impareremo come prendere l’input della console dall’utente usando la console java. Impareremo ogni modo di usare una console per l’input e l’output dell’utente in Java con l’aiuto di esempi.
Perciò, iniziamo ad esplorare i diversi modi di leggere l’input dalla console Java.
Ti teniamo aggiornato sulle ultime tendenze tecnologiche, Unisciti a TechVidvan su Telegram
Java Console
Ci sono tre modi per prendere input dalla console in Java
- Utilizzando la classe Java BufferedReader
- Tramite la classe Java Scanner
- Utilizzando la classe Java Console
Utilizzando la classe BufferedReader
Utilizzando la classe BufferedReader è il metodo classico per prendere input dalla console. Java ha introdotto questa tecnica da Java 1. La classe BufferedClass legge i dati riga per riga attraverso il metodo readLine(). Questa classe avvolge il System.in con un InputStreamReader.
Per utilizzare queste classi, dobbiamo usare il pacchetto java.io. Vediamo un esempio per capire questo metodo di lettura dell’input dalla console.
Codice per leggere l’input usando la classe BufferedReader:
package com.techvidvan.consoleinput; //Java program to demonstrate BufferedReaderimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class BufferedReaderDemo{ public static void main(String args) throws IOException { InputStreamReader input = new InputStreamReader(System.in); //Taking the input data using the BufferedReader class BufferedReader reader = new BufferedReader(input); // Reading data using readLine System.out.println("Please enter the input:"); String name = reader.readLine(); // Printing the read line System.out.println("You entered: "); System.out.println(name); }}
Output:
TechVidvan’s Java Tutorial
Hai inserito:
TechVidvan’s Java Tutorial
Utilizzare la classe BufferedReader fino a quando l’utente scrive “over”
Possiamo anche utilizzare la classe BufferedReader per prendere l’input dall’utente fino a quando l’utente digita una qualsiasi stringa che corrisponde alla nostra stringa di test. Facciamo un esempio per capire questo.
Codice per capire questo esempio:
package com.techvidvan.consoleinput;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class BufferedReaderDemo{ public static void main(String args) throws IOException { InputStreamReader input = new InputStreamReader(System.in); //Taking the input data using the BufferedReader class BufferedReader reader = new BufferedReader(input); String name = ""; System.out.println("Enter the names and when you want to stop entering the name, type Over"); while(!name.equals("Over")) { System.out.println("Enter the name: "); // Reading data using readLine() method name = reader.readLine(); // Printing the read line System.out.println("The entered name is: "+name); if(name.contentEquals("Over")) System.out.println("You entered Over!!"); } reader.close(); input.close(); } }
Output:
Inserisci il nome:
Avina
Il nome inserito è: Avina
Inserisci il nome:
Neha
Il nome inserito è: Neha
Inserisci il nome:
Ravi
Il nome inserito è: Ravi
Inserisci il nome:
Over
Il nome inserito è: Over
Hai inserito Over!!!
Nota: Il metodo readLine() è usato per prendere l’input String dall’utente. Se volete leggere gli altri tipi, possiamo usare i metodi come
- Integer.parseInt(): per leggere valori int
- Double.parseDouble(): per leggere valori double
- Float.parseFloat(): per leggere valori float
Per leggere valori multipli, usiamo il metodo split().
Usare la classe Scanner
Il secondo modo di prendere input dall’utente è usare la classe java.util.Scanner. È probabilmente la scelta migliore per prendere l’input della console dall’utente. Questa classe legge l’input dell’utente nella console o nella linea di comando. L’altro uso della classe Scanner è quello di analizzare le stringhe e i tipi primitivi con l’aiuto delle espressioni regolari java.
La classe Scanner è presente nel pacchetto java.util. Questa classe ottiene l’input da System.in (flusso di input standard).
In secondo luogo, usiamo anche questa classe Console per leggere input di tipo password senza visualizzare i caratteri della password di input sulla console.
Sintassi dell’uso della classe Scanner:
Scanner scanner = new Scanner(System.in);
Avantaggi
- La classe Scanner fornisce metodi utili come nextInt(), nextDouble(), nextFloat(), ecc.
- La classe Scanner usa espressioni regolari e noi possiamo usare queste espressioni regolari per trovare i token.
Drawback
- I metodi della classe Scanner per leggere i valori non sono sincronizzati
Tipi di input della classe Scanner
Per leggere i valori di vari tipi di dati, la classe Scanner fornisce diversi metodi. La seguente tabella mostra questi metodi:
Metodo | Descrizione |
nextBoolean() | Questo metodo legge un valore booleano dall’utente |
nextByte() | Questo legge un valore byte dall’utente |
nextDouble() | Questo metodo legge un valore doppio dall’utente |
nextFloat() | Questo metodo legge un valore float dall’utente |
nextInt() | Questo metodo legge un valore int dall’utente |
nextLine() | Questo metodo legge un valore stringa dall’utente |
nextLong() | Questo metodo legge un valore lungo dall’utente |
nextShort() | Questo metodo legge un valore breve dall’utente |
Codice per prendere input dall’utente usando la classe Scanner:
package com.techvidvan.consoleinput;import java.util.Scanner;public class ScannerClassDemo{ // Java program to understand the use of Scanner in Java public static void main(String args) { // Using Scanner for Getting Input from User Scanner sc = new Scanner(System.in); System.out.println("Enter a string"); String string = sc.nextLine(); System.out.println("You entered string: " +string); System.out.println("Enter a number"); int num = sc.nextInt(); System.out.println("You entered integer: " +num); System.out.println("Enter a float number"); float fnum = sc.nextFloat(); System.out.println("You entered float: " +fnum); }}
Output:
TechVidvan
Hai inserito la stringa: TechVidvan
Inserisci un numero
5
Hai inserito un numero intero: 5
Inserisci un numero float
87.4
Hai inserito float: 87.4
Utilizzando la classe Java Console
La classe Java Console è la terza tecnica per prendere input dall’utente attraverso la console. La classe Console è stata introdotta da Java 1.5. Questa classe è presente nel pacchetto java.io. Ci sono diversi metodi nella classe Console che aiutano a leggere testi di input e password dalla console, senza visualizzarli sullo schermo. In secondo luogo, usiamo anche questa classe Console per leggere input di tipo password senza visualizzare i caratteri della password in ingresso sulla console.
Avantaggi
- Lettura della password senza visualizzare i caratteri della password sulla console.
- I metodi di lettura della classe console sono sincronizzati.
- Possiamo anche usare la sintassi format string con la classe Console
Svantaggi
- Non funziona in un ambiente non interattivo (come in un IDE).
Metodi della classe Java Console
La seguente tabella mostra vari metodi della classe Java Console:
Metodo | Descrizione |
Reader reader() | Questo metodo ottiene l’oggetto della classe Reader relativo alla console. |
Stringa readLine() | Questo metodo legge una singola riga di testo dalla console. |
Stringa readLine(String fmt, Oggetto… args) | Questo metodo fornisce un prompt formattato prima di leggere il testo inserito dalla console. |
char readPassword() | Si usa per leggere una password che è visibile sullo schermo della console. |
char readPassword(String fmt, Object… args) | Questo metodo fornisce un prompt formattato prima di leggere la password che non è visibile sullo schermo della console. |
Console format(String fmt, Object… args) | Questo metodo visualizza una stringa formattata sul flusso di uscita della console. |
Console printf(String format, Object… args) | Questo metodo stampa una stringa sul flusso di uscita della console. |
PrintWriter writer() | Questo metodo è usato per ottenere l’oggetto della classe PrintWriter. |
void flush() | Questo metodo è usato per pulire la console. |
Codice per prendere input dall’utente usando la classe Console:
package com.techvidvan.consoleinput;public class Sample { public static void main(String args) { // Using Console to input data from user System.out.println("Enter something"); String name = System.console().readLine(); System.out.println("You entered: " +name); }}
Output:
Esempio di console Java per leggere la password
import java.io.Console; class Sample{ public static void main(String args) { Console c=System.console(); System.out.println("Enter password: "); char ch=c.readPassword(); String pass=String.valueOf(ch);//converting char array into string System.out.println("Password is: "+pass); } }
Output:
Sommario
In questo articolo Java, abbiamo visto tre modi diversi per ottenere l’input dall’utente e poi elaborarlo e mostrare l’output desiderato all’utente sulla console. Possiamo usare una qualsiasi delle tre classi per ottenere l’input della console dall’utente, che sono la classe BufferedReader, la classe Scanner e la classe Java Console. Ci sono diversi metodi per leggere l’input dall’utente. Abbiamo discusso tutti questi tre modi con l’esempio.
Grazie per aver letto il nostro articolo. Spero vi sia piaciuto. Condividilo sui social media.
Continua a imparare 🙂
0 commenti