Imprimir string em ordem descrecente

1 resposta
celson.dev

Pessoal,

estou com uma duvida besta, ja fiz alguma busca no forum nao entendi como fazer, estou fazendo um exercicio que le uma string e imprime ela de forma descrecente mas nao esta funcionando, qndo tento imprimir em forma crescente funciona mas nao o contrario, segue o codigo abaixo

funciona
public class Principal {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String inversao = "987654321";
		
		for (int i = 0; i < inversao.length(); i++) {
			System.out.println(inversao.charAt(i));
		}
		
	}

}
assim nao funciona:
public class Principal {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String inversao = "987654321";
		
		for (int i = inversao.length(); i < inversao.length() ; i--) {
			System.out.println(inversao.charAt(i));
		}
		
	}

}

alguem poderia me ajudar??

1 Resposta

wagnerfrancisco

O índice da string começa de zero, então o último índice é sempre o tamanho - 1. Aí está o seu primeiro erro, ao invés de inicializar o contador com length, deve inicializar com lenght - 1. O segundo erro é que se você está contando ao contrário, deve contar até que o contador seja >= 0 (lembre-se, o contador está decrescendo). Algo assim:

String inversao = "987654321";

for (int i = inversao.length() - 1; i >= 0 ; i--) {
   System.out.println(inversao.charAt(i));
}
Criado 26 de agosto de 2012
Ultima resposta 26 de ago. de 2012
Respostas 1
Participantes 2