Ciao, premetto che:
- sono dieci anni che non implemento una pila
- ho fatto tutto in fretta

Per implementare una pila come serve a te direi che puoi usare la classe StringBuffer come base, valla a vedere nella documentazione del jdk.

Questa potrebbe essere una prima grezza implementazione della classe Pila, ripeto è scritta in fretta e quindi non tiene conto delle possibili condizioni di errore, comunque può essere un punto di partenza...
codice:
class Pila {

	private StringBuffer buffer;

	// crea nuova pila
	public void Pila() {
		buffer = new StringBuffer();
	}

	// aggiunge carattere
	public void push(char c) {
		buffer.append(c);
	}

	// carattere in cima alla lista
	public char pop() {
		int pos = buffer.length()-1;
		char c = buffer.charAt(pos);
		buffer.deleteCharAt(pos);
	}

	// vuota la pila (la ricrea)
	public void vuota() {
		buffer = new StringBuffer();
	}

	// non mi ricordo a cosa serve... :(
	public void top() {
	}

}
Ciao