ingallosbaraglio - l'informatica in soldoni

scanf() per Java e non solo!



Pubblicato il 08-11-2012

Il problema...

Se anche voi vi siete chiesti se esista in giro una qualche funzione Java che emuli la comoda scanf del C, siete nel posto giusto. La risposta no! Java mette a disposizione strumenti molto semplici e sofisticati allo stesso tempo ma in questo campo non c' una soluzione diretta al problema, dobbiamo per forza ricorrere a classi come Scanner oppure impelagarci un attimino con due righe di codice con InputStreamReader e BufferedReader.


La soluzione

Assolutamente nulla di cos complicato intendiamoci, per a lunga andare (oppure per i neofiti) pu essere fastidioso dover utilizzare sempre questi strumenti. Per velocizzare il vostro lavoro a riguardo ho scritto, a tempo perso, questa semplicissima libreria che potete aggiunger ai vostri progetti; andiamo a vedere come funziona!

La libreria Utility (per ora alla versione 1.0, non si sa mai potrei ampliarla) consta di due semplici classi in e out;

in formata da 5 metodi pubblici:
- jscanStr():permette l'acquisizione di una stringa in input.
- jscanChr():permette l'acquisizione di un carattere in input.
- jscanInt():permette l'acquisizione di un intero in input.
- jscanFlt():permette l'acquisizione di un float in input.
- jscanDbl():permette l'acquisizione di una double in input.

out composta da 2 metodi pubblici:

-jprint( String line ): scrive a video la stringa line usando la funzione System.out.print().
-jprintln( String line ): scrive a video la stringa line usando la funzione System.out.println().

Andiamo a vedere una classe di esempio:

import java.io.IOException;

public class esempio {

public static void main (String arg[]) throws IOException {

in IN = new in(); //istanzio la classe in
out OUT = new out(); //istanzio la classe out

OUT.jprintln("Inserisci una stringa: "); //equivale al classico printf()
String line = IN.jscanStr(); //equivale al classico scanf("%s", &line)

OUT.jprintln("Inserisci un intero: ");
int num = IN.jscanInt(); //equivale al classico scanf("%d", &num)

OUT.jprintln("La stringa : " + line); OUT.jprintln("L'intero : " + num);

}
}

Come detto sopra, per utilizzare questa libreria basta aggiungerla al nostro progetto come JAR esterno.

In Eclipse

Per aggiungere Utility come libreria esterna clicchiamo col tasto destro del mouse sul nostro progetto e andiamo su Properties, clicchiamo su Build Path e poi sul pulsante Add External JARs quindi andiamo a selezionare utility_v.1.0.jar!

Condividi