Un frammento di lezione con un mentore come parte del corso Codegym University. Iscriviti al corso completo.


"Amigo, è giunto il tuo momento. Ora ti parlerò dell'input da tastiera."

"Abbiamo utilizzato System.out per visualizzare i dati sullo schermo. Per ricevere input, utilizzeremo System.in ."

"Sembra facile."

"Ma System.in ha un difetto: ci consente solo di leggere i codici dei caratteri dalla tastiera. Per aggirare questo problema e leggere grandi blocchi di dati tutti in una volta, useremo un costrutto più complesso:"

Esempio 1
Immettere una stringa e un numero dalla tastiera
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //Read a string from the keyboard
String sAge = bufferedReader.readLine(); //Read a string from the keyboard
int nAge = Integer.parseInt(sAge); //Convert the string to a number.
1
Compito
Java Syntax,  livello 3lezione 7
Bloccato
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
Esempio 2
Una versione più compatta dell'esempio precedente:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Esempio 3
Ancora più compatto
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

"Qualsiasi domanda?"

"Ehm...non ho capito niente."

"Per leggere una stringa dalla tastiera, è più comodo usare un oggetto BufferedReader . Ma per farlo devi passare l'oggetto da cui leggerai i dati. In questo caso, System.in ."

"Ma System.in e BufferedReader sono incompatibili, quindi utilizziamo un altro adattatore, un altro oggetto InputStreamReader ."

"Penso di averlo capito ora. Cos'è questa classe Scanner ?"

"Scanner può essere conveniente, ma non è molto utile. Il fatto è che, mentre procedi (sia nello studio che nel lavoro), utilizzerai spesso BufferedReader e InputStreamReader , ma Scanner – molto raramente. È conveniente nel nostro esempio, ma in il futuro non sarà utile molto spesso. Quindi non lo useremo molto ".

"Sembra chiaro, ma non sono sicuro di aver capito tutto."