1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[JAVA] Erro que não consigo detectar

Discussão em 'Programação' iniciada por OxyGen #, 4 de Junho de 2009. (Respostas: 1; Visualizações: 884)

  1. OxyGen #

    OxyGen # What is folding?

    Boas alguem me pode ajudar? quando corro o programa dá-me um erro nesta parte do codigo:

    Código:
             PrintWriter pwf = new PrintWriter(f1);
            String[] array = new String[6];
            array = str.keysToArray(); // funçao da memoria associativa que devolve um array de strings
            String[] numeros = new String[6];
            for(int i=0; i<numeros.length; i++)
              numeros[i]=str.get(array[i]); // erro Aqui (função get, devolve o conteúdo de uma determinada chave)
            for(int i=0; i<array.length;i++){
              String nome = array[i];
              String numero= numeros[i];
              pwf.println(nome + numero); 
    Isto é uma implantação de uma memória associativa que passa as chaves para um array e o respectivo conteudo das chaves para outro array. no fim dessas passagens exporta para um ficheiro.
    Não percebo qual o erro!

    Quando corro o programa diz.. "java.lang.ArrayIndexOutOfBoundsException: 1
    at Teste.main(Teste.java:35)" o 1 que aparece é o numero de chaves que está no array, se colocar la mais que uma chave ele devolve esse numero.
     
  2. nsilvio

    nsilvio Power Member

    Código:
    numeros[i]=str.get(array[i]);
    Não estas a verificar se a posição "i" existe no array.
    Nota que a variavel "array" tem um array attribuido por "str.keysToArray()" e não por "new String[6];"

    Ou seja, a variavel "array" tem menos de 6 posições.
     

Partilhar esta Página