Ordem Inversa

9 respostas
V

Oi pessoal… estou tentando colocar meu nome na ordem inversa e ta dando erro já tentei vários modos para tentar fazer isso e não consigo se alguem pudesse me dar uma dica ficaria grato…

public static void main(String[] args) {
String aux ;

aux = JOptionPane.showInputDialog("Digite:");

	if (aux == null){

	JOptionPane.showMessageDialog(null, "CANCELOU!!!"); 

	}
	else{
		System.out.println(aux.length());

		for (int i=0; i < aux.length() ; i++){

		System.out.println(aux.charAt(i));
	
		}  

}
}

}

ai está o código… dai gostaria de uma ajuda para criar mais um for para mostralo inversamente…

9 Respostas

Marlon_Meneses

se for somente pra exibir invertido entao ai vai

for (int i=aux.length() - 1; i >= 0 ; i–){

System.out.println(aux.charAt(i));

}

rodpuc

Poste o erro que está dando…

O que pude ver de cara é que seu for está indo do início ao fim, e não o contrário, portanto seu nome deve estar sendo impresso de forma normal. Tente substituir o seu for por este:

for (int i=aux.length(); i > 0; i--)

deve resolver.

Poste seu código sempre com a tag de code, ajuda a leitura do código.

Marlon_Meneses

dessa forma vai gerar um ArrayOutOfBoundsException

o certo seria o tamanho - 1 com o flag >= 0 pq se nao for assim entao se por exemplo existir 4(0,1,2,3) posicoes entao ele vai começar da posicao 4, ocasionado o erro!

entendeu?

V

Marlon Meneses:
se for somente pra exibir invertido entao ai vai

for (int i=aux.length() - 1; i >= 0 ; i–){

System.out.println(aux.charAt(i));

}

Muito Obrigado dessa forma deu certo eu ainda não aprendi muita coisa mas estou estudando… vc pode me dizer bem simples o por que usando dessa forma: “System.out.println(aux.charAt(i));” funciona e dessa não: "for (int i=aux.length(); i > 0; i–) " ??

Marlon_Meneses

pq acontece assim:

em uma array d por exemplo 4 posicoes (aux), o index começa por zero, entao teremos as posicoes 0,1,2,3
o comando aux.length() retorna o numero de posicoes de aux (4)

fazendo assim for (int i=aux.length(); i > 0; i–), ‘i’ vai apontar por index 4 do array aux cujo nao existe e entao vai acontecer o erro logo no inicio

entendeu?

rodrigo.bossini

Usa uma stringbuilder, assim:

import javax.swing.JOptionPane;
class Teste{
	public static void main (String args[]){
		String aux = JOptionPane.showInputDialog ("Digite o nome:");
		StringBuilder sb = new StringBuilder (aux);
		aux = sb.reverse().toString();
		JOptionPane.showMessageDialog (null, "Nome inverso: " + aux, "Resultado:", JOptionPane.INFORMATION_MESSAGE);

	}
}
V

Marlon Meneses:
rodpuc:

for (int i=aux.length(); i > 0; i--)

dessa forma vai gerar um ArrayOutOfBoundsException

o certo seria o tamanho - 1 com o flag >= 0 pq se nao for assim entao se por exemplo existir 4(0,1,2,3) posicoes entao ele vai começar da posicao 4, ocasionado o erro!

entendeu?

Sim Sim entendi sim muito obrigado pela ajuda. Agradeço muito pela ajuda.

V
rod.attack:
Usa uma stringbuilder, assim:
import javax.swing.JOptionPane;
class Teste{
	public static void main (String args[]){
		String aux = JOptionPane.showInputDialog ("Digite o nome:");
		StringBuilder sb = new StringBuilder (aux);
		aux = sb.reverse().toString();
		JOptionPane.showMessageDialog (null, "Nome inverso: " + aux, "Resultado:", JOptionPane.INFORMATION_MESSAGE);

	}
}

nossa muito bacana essa forma de fazer muito obrigado gostei mto desse jeito de fazer coloquei pra rodar muito obrigado agradeço a tua ajuda e de todos.

rodrigo.bossini
VictorFarion:
rod.attack:
Usa uma stringbuilder, assim:
import javax.swing.JOptionPane;
class Teste{
	public static void main (String args[]){
		String aux = JOptionPane.showInputDialog ("Digite o nome:");
		StringBuilder sb = new StringBuilder (aux);
		aux = sb.reverse().toString();
		JOptionPane.showMessageDialog (null, "Nome inverso: " + aux, "Resultado:", JOptionPane.INFORMATION_MESSAGE);

	}
}

nossa muito bacana essa forma de fazer muito obrigado gostei mto desse jeito de fazer coloquei pra rodar muito obrigado agradeço a tua ajuda e de todos.

Hehehe, dá uma olhada na API das StringBuilder e StringBuffer. Você vai gostar delas. :)

Criado 4 de março de 2009
Ultima resposta 4 de mar. de 2009
Respostas 9
Participantes 4