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.*/
public void imprimiString(String x)
{
for(int i = 0; i < x.length(); i--)
{
System.out.println(x.charAt(i));
}
}
public static void main(String[] args)
{
String ww = "Teste de traz para frente";
RMenos r = new RMenos();
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
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:
[code] public class RMenos
{
public static void main(String[] args)
{
imprimeAoContrario(“Teste”);
}
public static void imprimeAoContrario(String string)
{
for(int i = string.length() - 1; i >= 0; i--)
System.out.println(string.charAt(i));
}
}[/code]