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

7 respostas
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:

<blockquote>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));

}

}

}</blockquote>

Porém, está constando o seguinte erro:

<blockquote>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)</blockquote>

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

Agradeçoo a todos !!

Abraaços ! :smiley:

7 Respostas

ViniGodoy

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

TeRRa

[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]

marcelo.bellissimo

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)); } }

phfaustino

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:

<blockquote>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));

}

}

}</blockquote>

Porém, está constando o seguinte erro:

<blockquote>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)</blockquote>

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

Agradeçoo a todos !!

Abraaços ! :smiley:

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!

TeRRa

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 !

marcelo.bellissimo

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

Relaxa, acontece… :smiley:

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

ViniGodoy

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:

Criado 16 de abril de 2010
Ultima resposta 16 de abr. de 2010
Respostas 7
Participantes 4