PDA

Visualizza la versione completa : [Java] come funziona l'istruzione null


cielo81
15-12-2004, 17:32
ho capito che se leggo i dati da un file con un ciclo dove la condizione verifica con null allora ci si ferma quando non ci sono + dati nel file ma come funziona con le stringhe?? ossia come faccio a fermarmi dopo aver letto alcune stringhe da tastiera??
[code]
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Inserisci");
String leggi;
leggi = br.readLine();
while (leggi != null){
System.out.println(leggi);
System.out.println("Inserisci");
leggi = br.readLine();
}
[code]
se utilizzo null quando mi sono rotto di inseire delle parola a caso se faccio soltanto invio non dovrebbe smettere??
come faccio a farlo smettere??

LeleFT
15-12-2004, 17:45
Semplicemente cambia il confronto: null non č una funzione, č una costante che indica che un oggetto non č istanziato. Se intendi fermarti quando l'utente preme INVIO puoi semplicemente effettuare il confronto con la stringa vuota (che č diversa da una stringa nulla!!):


while (!leggi.equals("")) {
...
}

Ciao. :ciauz:

cielo81
15-12-2004, 18:48
tankyou :ciauz: :ciauz:

tommisceddu
15-12-2004, 19:52
per quanto riguarda le stringhe, NULL identifica una stringa nulla ovvero una stringa vuota ""

netarrow
15-12-2004, 22:02
non sono sicuro che NULL identifichi una stringa "".

Come ha detto LeleFT, non č inizializzato...(in java si da per scontato, ma si intede un "puntatore" non inizializato, č qui il problema)



String stringa;
//si avverte il compilatore che esisterā una variabile di nome stringa
//di tipo String, ma non esiste nessun spazio di memoria ancora
//associato a "stringa",
//quindi č nullo.

stringa = "";
//stringa sarā un "puntatore"(impliciti in java) ad una zona di
//memoria che conterrā il valore "", identificato col nome stringa


Quindi null praticamente dice
"per ora non esiste, ma ti avverto che esisterā"
e la memoria verrā allocata alla prima inizializzazione.

Un tipico errore causato dall'utilizzo errato di null č il NullPointerException, ovvero puntatore nullo, puntatore a memoria non allocata, non inizializzata appunto.



String str = null;
str.equals("");


in questo caso c'č un NullPointerException, dato che si vuole guardare se il valore di str č "", ma il valore č nullo, appunto, il valore non esiste ancora, bisogna appena allocare la memoria sufficiente a contenere un eventuale valore futuro :fighet:.

:ciauz:

Loading