Como imprimir a String um caracter por linha de traz pra frente utilizando os metodos chaAt e lengt?
2 respostas
rodrigo_salla
public class RMenos
{
/* Escrever um metodo que utiliza os metodos
* charAt e length de uma String para imprimir
* a mesma inversamente caractere por caractere, sendo que,
* cada caractere deva ser impreso na tela em
* uma linha diferente.*/
publicvoidimprimiString(Stringx){for(inti=0;i<x.length();i--){System.out.println(x.charAt(i));}}publicstaticvoidmain(String[]args){Stringww="Teste de traz para frente";RMenosr=newRMenos();r.imprimiString(ww);}
Vc pode usar o StringBuffer pra fazer isso usando o método. reverse(), ou inverse(). alguma coisa assim, nao me lembro certim.
Mas como vc quer fazer usando charAt().
faz o for contando inicialmente do tamanho da sua string diminuindo de um em um até chegar zero.
Abraço
elomarns
Ao executar o seu código, ocorre a exceção StringIndexOutOfBoundsException. Isso acontece porque você inicia a váriavel i com o valor 0, e logo após a primeira iteração esta variável assume o valor -1. Sendo assim, na segunda iteração do seu loop, ocorrerá a chamada do método charAt passando -1 como argumento, o que provoca a exceção mencionada, já que o primeiro caractere de uma string está na posição 0, logo você está acessando uma posição inexistente da string passada como argumento.
Abaixo está uma possível correção para o seu código: