[RESOLVIDO] Erro - "String index out of range"

Bom dia galera…
Sou novo aqui no forum e também na linguagem Java.
Estou cursando o 2º Ano de Sistemas e ainda tenho muitas duvidas referente a esta linguagem.

Em um exercício desenvolvi o seguinte código:

[quote]import javax.swing.*;
public class primeiraclasse{
public static void main(String[]args){
String nome=JOptionPane.showInputDialog("Digite um nome: ");
for(int i=nome.length(); i>0; i–){
System.out.print(nome.charAt(i));
}
}
}[/quote]

Porém, está constando o seguinte erro:

[quote]Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 7
at java.lang.String.charAt(Unknown Source)
at primeiraclasse.main(primeiraclasse.java:6)[/quote]

Utilizo a IDE Eclipse SDK.
Gostaria de saber onde estou errando ou até mesmo dicas para saber.

Agradeçoo a todos !!

Abraaços ! :smiley:

Os índices de uma string vão de 0 até até o length()-1. Você começa seu i no length(), daí o erro.

[i]Entendo…
Porém quando eu acrescento o -1, a palavra aparece faltando o ‘ultimo’ caracter… Isso que não estou conseguindo entender!
Exemplo:

Digito: abacaxi
com o length()-1, aparece: ixacab

faltando a letra A no final!!![/i]

Faltou pegar o indice 0:

public static void main(String[] args) { String nome = JOptionPane.showInputDialog("Digite um nome: "); for (int i = nome.length()-1; i >= 0; i--) { // <- tem que ser maior-igual pra pegar o indice 0 System.out.print(nome.charAt(i)); } }

[quote=TeRRa]Bom dia galera…
Sou novo aqui no forum e também na linguagem Java.
Estou cursando o 2º Ano de Sistemas e ainda tenho muitas duvidas referente a esta linguagem.

Em um exercício desenvolvi o seguinte código:

[quote]import javax.swing.*;
public class primeiraclasse{
public static void main(String[]args){
String nome=JOptionPane.showInputDialog("Digite um nome: ");
for(int i=nome.length(); i>0; i–){
System.out.print(nome.charAt(i));
}
}
}[/quote]

Porém, está constando o seguinte erro:

[quote]Exception in thread “main” java.lang.StringIndexOutOfBoundsException: String index out of range: 7
at java.lang.String.charAt(Unknown Source)
at primeiraclasse.main(primeiraclasse.java:6)[/quote]

Utilizo a IDE Eclipse SDK.
Gostaria de saber onde estou errando ou até mesmo dicas para saber.

Agradeçoo a todos !!

Abraaços ! :smiley: [/quote]

Cara o problema é que no FOR vc está testando só enquanto i > 0, ou seja, quando i == 0 ele vai sair do laço, fazendo com que assim a primeira posição não seja impressa… basta vc colocar i >=0 dai vai funcionar…
Qualquer duvida posta ae!

Nossa… =
Da até desanimo quando passa umas coisas desse tipo! --’ :oops:
Falta de atenção… :x

Valeeu galeraa… funcionou agora !! Brigadão…
Um abraaaço !
:smiley:


Podem fechar o topico !

[quote=TeRRa]Nossa… =
Da até desanimo quando passa umas coisas desse tipo! --’ :oops:
Falta de atenção… :x [/quote]
Relaxa, acontece… :smiley:

Só botar um [Resolvido] no nome do tópico que já era…

Da próxima, experimente rodar o código passo-a-passo, com um depurador. Fica bem fácil ver o que o programa está fazendo. :slight_smile: