Problema array

di il
15 risposte

Problema array

Buonasera a tutto il gruppo.

Volevo porvi il seguente problema.

Leggendo un file e caricando i dati in un array mi sono ritrovato con un elemento null.....vorrei eliminare questo elemento dall'array e continuare a fare le operazioni che mi interessano. Se non lo elimino oppure salto, mi continua a dare errore e ovviamente non posso effettuare alcune operazione.


Come posso fare.


Grazie in anticipo.

15 Risposte

  • Re: Problema array

    Avevo in mente di creare un vettore e quando incontra null salta alla posizione successiva…….ma non ci riesco...
  • Re: Problema array

    trixy ha scritto:


    Leggendo un file e caricando i dati in un array mi sono ritrovato con un elemento null.....vorrei eliminare questo elemento dall'array e continuare a fare le operazioni che mi interessano. Se non lo elimino oppure salto, mi continua a dare errore e ovviamente non posso effettuare alcune operazione.
    La soluzione semplice/banale: quando usi l'array (cioè dopo il caricamento), salti i null (banale "if"). Ma la cosa migliore sarebbe analizzare perché si è arrivati ad avere un null nell'array.
    Mostra il codice di caricamento, eventualmente.
  • Re: Problema array

    Il null esiste perché avevo eliminato una riga di caratteri che non mi servivano.

    Ma in ogni caso non so che cosa scrivere nell' if

    if (array.equals("0"))
    i++

    cos'?
  • Re: Problema array

    Magari posta il codice che carica ed anche il file che leggi ,se puoi
  • Re: Problema array

    Vediamo se riusciamo a fare direttamente così.In pratica leggo dal file con le istruzioni di sotto,poi metto un if perché incontro alcune righe con * e non mi servono, quindi da eliminare. Cosa devo scrivere dopo l'if??.A questo punto vorrei memorizzare tutti i dati letti in un array e questo lo so fare.
    while(truel)
    {
         wrd=f.readLine();
         if(wrd.equals("**********************")
    
  • Re: Problema array

    trixy ha scritto:


    Cosa devo scrivere dopo l'if??
    Se wrd contiene quella stringa di asterischi e tu vuoi ignorarla e passare subito alla riga dopo, basta un continue; come corpo di quel if
  • Re: Problema array

    Ho già fatto con il continue però n questo modo mi ritrovo nell'array il nulle quindi se devo effettuare operazioni sull'array ottengo un errore in corrispondenza della riga contente il null(Source not found)
  • Re: Problema array

    Trixy, qualche riga in più di codice ? è così importante da tenerlo segreto ?
  • Re: Problema array

    String a;
    String b [] = new String [100];
    BufferedReader f= new BufferedReader(new FileReader(file.dat));
    for(int i=0;i<100;i++) 
    		{
    			 a=f.readLine();  
    			 if(s.equals("***      ****"))
    				 continue;
    			 else
    			 b[i]=a;	
    			 System.out.println(b[i]);
        }
    
    Ma nell'array mi ritrovo "null " al posto di *** *** e non posso effettuare operazioni sul vettore.
    Come si elimina?
  • Re: Problema array

    trixy ha scritto:


    BufferedReader f= new BufferedReader(new FileReader(file.dat));
    for(int i=0;i<100;i++) 
    		{
    			 a=f.readLine();  
    			 if(s.equals("***      ****"))
    				 continue;
    
    Beh, adesso è chiaro! E' vero che il continue fa "saltare" il resto del codice per iniziare subito un nuovo ciclo ma ... l'indice i va comunque sempre avanti! Il continue NON ferma l'incremento!!

    Soluzione: sposta il i++ al fondo del blocco del for.
  • Re: Problema array

    Cioè tolgo i++ dalle parentesi del for e lo metto sotto il system.out…..?
  • Re: Problema array

    trixy ha scritto:


    Cioè tolgo i++ dalle parentesi del for e lo metto sotto il system.out…..?
    Sì. E il "else" lo puoi anche togliere
  • Re: Problema array

    Ho fatto come detto e mi continua a dare NullPointerException alla riga dell'if nonostante i dati in uscita siano corretti
  • Re: Problema array

    trixy ha scritto:


    Ho fatto come detto e mi continua a dare NullPointerException alla riga dell'if nonostante i dati in uscita siano corretti
    Quello che ti ho detto io è corretto riguardo il i++. Ma c'è un'altra questione: hai messo i<100 e quindi ... quante righe ci sono realmente nel file?
Devi accedere o registrarti per scrivere nel forum
15 risposte