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.