Input/Output standard

Introduzione
I programmi non avrebbero alcuna utilità se non potessero acquisire informazioni dall'esterno (input di dati) o fornire informazioni all'esterno (output di dati). In generale, con input si indicano i dati che occorrono ad un programma per poter procedere con l’elaborazione; con output si indicano i risultati dell’elaborazione stessa.

input

output

In questa dispensa ci occuperemo dell’I/O standard, ossia di input di dati attraverso la tastiera e di output di dati mediante il monitor del computer. Inizieremo con l’output, più semplice, per poi passare ai diversi metodi di immissione di input.

Output a video
Per visualizzare i risultati di un’elaborazione sul monitor, si utilizza l’istruzione System.out.println, la cui sintassi è:

System.out.println(output);
dove output può essere • una stringa, cioè una sequenza di caratteri alfanumerici, racchiusa tra virgolette (es. “codice A123Hfggg%”); • un identificatore di variabile/costante. Attenzione! System ha iniziale maiuscola perché è una classe di Java. Se scrivete system, vi viene segnalato un errore. Esempio Il codice:

System.out.println("questo e’ il risultato");
visualizza la stringa questo è il risultato. Esempio Il codice:

System.out.println(numero);
visualizza il valore della variabile numero. La variabile numero deve essere stata dichiarata in precedenza e deve anche avere un valore. In caso contrario, viene segnalato un errore.

Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11

1

L’istruzione System.out.println ammette un unico argomento; per visualizzare più argomenti bisogna utilizzare l’operatore di concatenazione +. Esempio Il codice:

System.out.println(“questo e’ il risultato “ + numero);
visualizza la stringa questo è il risultato seguita dal valore della variabile numero. L’operatore di concatenazione + converte automaticamente ogni operando in una stringa. Osservazioni  Non utilizzate nelle stringhe lettere accentate; sostituite l’accento con l’apice (‘).  Quando utilizzate l’operatore di concatenazione di stringhe ricordate di lasciare almeno uno spazio bianco tra le stringhe che desiderate appaiano a video.

Input da tastiera
Le versioni fino alla 1.4 di Java non dispongono di specifiche istruzioni per l’acquisizione di input da tastiera; per semplificare le operazioni occorre creare una classe apposita. A partire dalla versione 5 di Java, è disponibile la classe Scanner. Essa appartiene alla libreria (package) java.util e fornisce vari metodi per l’input di tipi primitivi e stringhe. Metodi della classe Scanner significato un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e una stringa immessa da tastiera

metodo nextBoolean() nextByte() nextShort() nextInt() nextLong() nextFloat() nextDouble() nextLine()

legge legge legge legge legge legge legge legge

lo lo lo lo lo lo lo

trasforma trasforma trasforma trasforma trasforma trasforma trasforma

in in in in in in in

boolean byte short int long float double

Per poter usare i metodi della classe Scanner, occorre aggiungere due righe di codice nel programma Java, così come illustrato in seguito:

import java.util.*; class nome_classe { public static void main (String args[]) { Scanner console= new Scanner(System.in); ................................. } }
Per acquisire in input un intero, occorre scrivere:
Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11

2

ID_varIntera = console.nextInt();
Per tutti gli altri tipi, si procede in modo analogo.

I/O con finestre di dialogo
Java consente di utilizzare delle finestre di dialogo per l’I/O, attraverso la classe JOptionPane del package javax.swing. I metodi disponibili sono: Metodi della classe JOptionPane metodo significato showInputDialog(messaggio) mostra una finestra nella quale è visualizzato il messaggio specificato e con un apposito campo che consente di inserire una stringa (usata per l’input) showMessageDialog(null,messaggio) mostra una finestra nella quale è visualizzato il messaggio specificato (usata per l’output) Per poter usare i metodi della classe JOptionPane, occorre aggiungere una riga di codice nel programma Java, così come illustrato in seguito:

import javax.swing.*; class nome_classe { public static void main (String args[]) { ................................. } }
Per acquisire in input una stringa, occorre scrivere:

String ID_stringa = JOptionPane.showInputDialog(messaggio);
Esempio Supponiamo che il messaggio sia “Inserisci stringa”. A video apparirà la finestra

Per produrre in output una stringa, occorre scrivere:

JOptionPane.showMessageDialog(null,messaggio);
Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11

3

Esempio Supponiamo che il messaggio sia “Ciao PIPPO, come stai?”. A video apparirà la finestra

Il principale problema legato alle finestre di dialogo è che consentono di acquisire in input solo stringhe; anche un numero digitato nel campo della finestra di input è interpretato come stringa. Questo implica che è necessario convertire la stringa nel tipo necessario per l’elaborazione. Nella tabella seguente sono illustrati i principali metodi per la conversione di stringhe. Metodi per la conversione di stringhe metodo significato Byte.parseByte(stringa) converte stringa in un byte Short.parseShort(stringa) converte stringa in uno short Integer.parseInt(stringa) converte stringa in un int Long.parseLong(stringa) converte stringa in un long Float.parseFloat(stringa) converte stringa in un float Double.parseDouble(stringa) converte stringa in un double Boolean.parseBoolean(stringa) converte stringa in un boolean Esempio Il seguente frammento di codice richiede in input un numero, poi lo incrementa di 1 e infine lo produce in output.

String numStr = JOptionPane.showInputDialog(“Immetti numero”); int num= Integer.parseInt(numStr); num= num+1; numStr=““+num; JOptionPane.showMessageDialog(null,numStr);

_______________________________________________________________________
Quest'opera è stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11

4

Sign up to vote on this title
UsefulNot useful