Re:COmo inverter isso?

6 respostas
T
for (i = a.length(); i > 0; --i) {
    uu += a.substring(i,0);
}

Vou mostrar a resposta e o que você teria de ter feito. A resposta:

for (i = a.length() - 1; i >= 0; --i) {
    uu += a.charAt(i);
}

Primeira coisa - substring tem dois parâmetros: o primeiro é a posição inicial (que começa por 0), e o segundo é a posição final MAIS UM. Não é a quantidade de letras menos um, que é o que você achou.
Segunda coisa - as posições em uma string começam em 0 e terminam em length() - 1.

6 Respostas

kaique

Uma outra solução, e que na minha opnião eh mais elegante, eh vc usar uma pilha pra empilahr os caracteres a partir da posição inicial…ai depois vc desempilha…e pronto!
:slight_smile: :slight_smile:

Vlw!!

thiago.correa

Em uma linha eheheh 8)

System.out.println(new StringBuffer("Digite aqui a palavra a ser invertida").reverse());
T

Você não viu que o OP (Original Poster) está pedindo ajuda para resolver a lição de casa? Se usar “.reverse” o professor não vai aceitar :stuck_out_tongue:

somma
import javax.swing.JOptionPane;

class InverterString {

    public static void main(String []args){
        String string="";
        string = (String) JOptionPane.showInputDialog("Digite String ");
        
        Inverter inverter = new Inverter();
        JOptionPane.showMessageDialog(null,""+inverter.inverterPalavra(string),"Palavra invertida",JOptionPane.INFORMATION_MESSAGE);
    }
}

class Inverter{
    
    private String[] nome = new String[100];
    private String nomeInvertido="";
    
    Inverter(){
        
    }
    
    public String inverterPalavra(String a){
        int j = 0;
        
        for(int i = a.length()-1; i >= 0 ; i--){
            nome[j] = ""+ a.charAt(i);
            nomeInvertido = nomeInvertido.concat(nome[j]);
        }

        return nomeInvertido;

    }
}
thiago.correa

Ops, eu até li para saber se era lição de casa, mas como eu não vi nada acabei postando o código. Também sou contra fazer lição de casa pelos outros!

tiaguinhooo

minha pergunta e simples Obrigado por estar me ajudando e assim
eu queria saber como faço pra inverter uma palavra tipo assim “joao” ai fica “oaoj” eu fiz assim mais da um pau louco:

public static void invertePalavra(String a){
		int i;
		String uu ="";
		for (i=a.length();i>0;i--)
		{	
			uu += a.substring(i,0);	
			
		}
		System.out.println(uu);
	}

da out range algo assim como faço e se eu aki nesas parte
uu += a.substring(i,0);
eu troco o i pelo 0 ai da a palavra repitida varias vezes com faço obrigado!

Criado 29 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 6
Participantes 5