Pelo amor de deus preciso de ajuda

Pelo amor de deus preciso de ajuda
Galera venho supricar a vc´s se alguem pode me ajudar com esse programa eu agradeceria muito pois preciso entregar ele até 03/12/06 14:00hrs se naum pego dp na facul já tentei de tudo quanto e geito fazer esse programa funcionar tipo ele ta funcionando mais o que acontece e que preciso mundar a parte de inverte o nome em pilha mais não consigo fazer isso e não sei fazer e tenho pouco tempo se alguem poder fazer eu ficaria muito grato acho q isso e muito facil para vc´s quando mostrei pra ele esse programa ele disse que precisava implementou a estrutura pilha…

public class Trabalho {

private static String Reverter(StringBuffer texto)
{
return texto.reverse().toString();
}

public static void main(String[] args) {
try{
StringBuffer texto = new StringBuffer();
//
System.out.print(“Digite o Nome: “);
//
int c=0;
int i=0;
while((i=System.in.read())>-1){
if(i==10){
break;
}else{
if(i==32){
if(c>=2){
c=0;
texto.append((char)i);
}
}else{
c++;
texto.append((char)i);
}
}
}
//
String nome = texto.toString().trim();
String nomeRev = Reverter(texto);
int tamanho = nome.length();
int palavra = nome.split(” “).length;
//
System.out.println(”---------------------------------\n”);
System.out.println("Nome: "+nome);
System.out.println("Numero de caracteres: "+tamanho);
System.out.println("Numero de palavras: "+palavra);
System.out.println("Resultado final: ");
System.out.println(nomeRev);
}catch(Exception exc){
System.out.println(exc.getMessage());
}
}
}

o q ele pediu foi isso aki…
Utilizando a estruturada de dados abstrada do tipo PILHA, fazr um programa em que o usuário informe seu nome completo, separado por espaços.O programa deverá exibir o nome com as palavras invertidas e cada uma das letras, de cada palavra, invertidas. O programa deverá também apresentar o quantos caracteres existem em toda string e o total de palavras EX:

Nome: Jose Maria da Silva
Resultado Final: avliS ad airaM esoJ
Número de caracteres: 19
Númro de palavras: 4

O programa deverá fazer uma verificação para que cada palavra tenha pelo menos 2 caracteres.

Um amigo me ajudou a fazer esse mais o professor disse a mesma coisa Não implementou a estrutura pilha realmentei não sei fazer isso … o programa foi esse e ta funcionando aki e o meu ultimo recurso se não pego dp direto sem choro…

import java.util.Stack;

public class Trabalho {

private static Stack pilha;

private static String Reverter(StringBuffer texto)
{
pilha = new Stack();
for (int i = 0; i < texto.length();i++) {
pilha.push(Character.valueOf(texto.charAt(i)));
}
StringBuilder resultado = new StringBuilder();
for (int i = 0; i < texto.length(); i++) {
Character letra = (Character)pilha.pop();
resultado.append(letra);
}
return resultado.toString();
}

public static void main(String[] args) {
try{
StringBuffer texto = new StringBuffer();
//
System.out.print(“Digite o Nome: “);
//
int c=0;
int i=0;
while((i=System.in.read())>-1){
if(i==10){
break;
}else{
if(i==32){
if(c>=2){
c=0;
texto.append((char)i);
}
}else{
c++;
texto.append((char)i);
}
}
}
//
String nome = texto.toString().trim();
String nomeRev = Reverter(texto);
int tamanho = nome.length();
int palavra = nome.split(” “).length;
//
System.out.println(”---------------------------------\n”);
System.out.println("Nome: "+nome);
System.out.println("Numero de caracteres: "+tamanho);
System.out.println("Numero de palavras: "+palavra);
System.out.println("Resultado final: ");
System.out.println(nomeRev);
}catch(Exception exc){
System.out.println(exc.getMessage());
}
}
}

ele quer que vc implemente uma pilha, então:
Pilha: http://pt.wikipedia.org/wiki/Pilha_(estrutura_de_dados)

Vlw mais realmente não consigo implementar isso no programa sera q alguem poderia me ajudar?

Acho que pode te ajudar: dfm.ffclrp.usp.br/~evandro/aedII/aulas/folder_s02_a1.pdf

Galera da una olhada como ficou o programa ele tah rodando legal só me confirmem se esta realmente inplementada a pilha só por encargos de consciencia…

public class Trabalho {

public static void main(String[] args) {
    try{            
        Pilha pilhaTexto = new Pilha(30);
        //
        System.out.print("Digite o Nome: ");
        //
        int c=0;            
        int i=0;            
        while((i=System.in.read())&gt;-1){
            if(i==10 || pilhaTexto.cheia()){
                break;
            }else{
                if(i==32){
                    if(c&gt;=2){
                        c=0;
                        pilhaTexto.inserir((char)i);
                    }                        
                }else{
                    c++;
                    pilhaTexto.inserir((char)i);
                }
            }
        }
        //
        int tamanho = pilhaTexto.tamanho();
        Pilha pilhaRev = new Pilha(tamanho);
        //            
        char[] lNome = new char[tamanho];
        int x=0;
        while(!pilhaTexto.vazia()) {
           lNome[x] = pilhaTexto.remover();
           pilhaRev.inserir(lNome[x]);
           x++;
        }
        //
        String nomeRev = new String(lNome);
        //            
        x=0;
        while(!pilhaRev.vazia()) {
           lNome[x] = pilhaRev.remover();               
           x++;
        }
        //
        String nome = new String(lNome);            
        int palavra = nome.split(" ").length;
        //
        System.out.println("---------------------------------\n");
        System.out.println("Nome: "+nome);            
        System.out.println("Numero de caracteres: "+tamanho);
        System.out.println("Numero de palavras: "+palavra);
        System.out.println("Resultado final: ");
        System.out.println(nomeRev);
    }catch(Exception exc){
        System.out.println(exc.getMessage());
    }        
}    

}

class Pilha {

private int topo ;
private char [] dados ;

public Pilha (int tam) { 
    topo = 0;
    dados = new char [tam] ;
}

public boolean vazia () { 
    return (topo == 0) ;
}

public boolean cheia () { 
    return ( topo == dados.length ) ;
}

public void inserir(char c) { 
    dados [topo++] = c;
}

public char remover () { 
    return dados[--topo];
}   
    
public int tamanho(){
    return topo;
}

}