Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Parola Palindroma con classe Pila Errore di compilazione

    codice:
    import java.io.*;
    import java.util.Vector;
    public class Palindromo {
        public static void main(String[] args) throws IOException
        {
            BufferedReader console=new BufferedReader(new InputStreamReader(System.in));
            String parola=new String();
            Pila miaPila=new Pila();
            char c=0;
            Character mioC;
            
            do
            {
                System.out.println("Inserisci una stringa: ");
                parola=console.readLine();
            } while(parola.length()==0); //Soluzione più giusta
            
            for(int i=0;i<parola.length();i++)
            {
                c=parola.charAt(i);
                miaPila.push(new Character(c)); 
    
                System.out.println("Elementi nella pila: "+miaPila.size());
                if(!miaPila.vuota())
                {
                    for(i=0;i<parola.length();i++)
                    {
                        mioC=(Character)miaPila.top();
                        c=mioC.charValue();
                        if(c==parola.charAt(i))
                        {
                            miaPila.pop();
                        }
                    }
                }
                else
                {
                    System.out.println("La pila è vuota!");
                }
                if(miaPila.vuota())
                    System.out.println("La parola inserita è palindroma!");
                else
                    System.out.println("La parola inserita NON è palindroma!");
            }
        }
    
    
    }
    quando vado ad inserire la parola me la acquisisce e mi da errore alla riga 51.
    che sarebbe: c=mioC.charValue();

    vorrei capire dov'è l'errore.
    Ultima modifica di BobTheCat; 10-02-2014 a 17:41

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Che errore (eccezione?) da?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Exception in thread "main" java.lang.NullPointerException
    at Palindromo.main(Palindromo.java:51)

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E' piuttosto ovvio:
    Il ciclo for interno va per tutta la lunghezza della parola... ma se sei al primo carattere con il ciclo for esterno, dentro alla pila avrai un solo carattere. Quindi, supponiamo di avere la parola "Ciao".

    Il ciclo for esterno dice di ciclare per tutta la lunghezza della parola. Quindi, al primo ciclo butti dentro alla pila la lettera "C". Poi, con il ciclo for interno cicli per tutta la lunghezza della parola (4 cicli!!), cercando di estrarre ad ogni cilo la prima lettera presente nella pila... ma nella pila hai solo una lettera, la C, quindi, dal secondo ciclo del for interno all'ultimo, non hai nessuna lettera. Quindi "mioC" sarà per forza nullo. Da qui la NullPointerException alla riga 51.

    Da rivedere completamente la logica.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.