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??
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:
tommisceddu
15-12-2004, 20:52
per quanto riguarda le stringhe, NULL identifica una stringa nulla ovvero una stringa vuota ""
netarrow
15-12-2004, 23: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: