Programação Progressiva
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Programação Progressiva

Fórum para dúvidas dos sites: Programação Progressiva, Java Progressivo, C Progressivo


Você não está conectado. Conecte-se ou registre-se

Imprimindo ao contrário[Erro]

Ir para baixo  Mensagem [Página 1 de 1]

1Imprimindo ao contrário[Erro] Empty Imprimindo ao contrário[Erro] Sex Fev 14, 2014 1:17 pm

thales miguel

thales miguel

import java.util.Scanner;
public class DESAFIOMETODOS4 {

  Código,Erro!
/**
    * @param args the command line arguments
    */

   public static void main(String[] args) {
       Scanner s=new Scanner(System.in);
       String stg;
       char n;
       System.out.println("Digite uma palavra qualquer ...");
       stg=s.nextLine();
       for(int inicio=stg.length();inicio>=0;inicio--){
           n=stg.charAt(inicio);
           System.out.println(n);
       }
       
   }
   
}
Erro!:
Digite uma palavra qualquer ...
oi
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 2
at java.lang.String.charAt(String.java:658)
Java Result: 1

2Imprimindo ao contrário[Erro] Empty Re: Imprimindo ao contrário[Erro] Sex Fev 14, 2014 1:46 pm

thales miguel

thales miguel

Eu mesmo concertei e o erro era que o length() retornava sempre um numero maior do que a numeração dos caracteres.
por exemplo;
oi length()=2
porem
o charAt(2) não existe;
pois a numeração começa do 0;
então seria charAt(0)="o" e charAt(1)="i"
portanto o length()deve começar assim length()-1;

Codigo corrigido:
import java.util.Scanner;
public class DESAFIOMETODOS4 {

   public static void main(String[] args) {
       Scanner s=new Scanner(System.in);
       String stg;
       char n;
       System.out.println("Digite um numero qualquer ...");
       stg=s.nextLine();
       for(int inicio=stg.length()-1;inicio>=0;inicio--){
           n=stg.charAt(inicio);
           System.out.printf("%s",n);
       }
       System.out.println();
   }
   
}

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos