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

Dúvida cópia posições em Arrays

Discussão em 'Programação' iniciada por luismca, 13 de Junho de 2009. (Respostas: 9; Visualizações: 930)

  1. luismca

    luismca Power Member

    Boa tarde a todos,

    Precisava que me dessem aqui umas luzes sobre uma dúvida que me está a deixar curioso.

    Porquê que este código lança a excepção NullPointerException.


    Código:
            String[] teste = {"0","1","2","3"};
            String[] par = null;
            String[] impar = null;
            
            for (int i = 0; i < teste.length; i++) {
                if (teste.length % 2 == 0) //se fôr par, adiciona ao array de strings par
                    par[i] = teste[i];
                else //se fôr impar, adiciona ao array de strings impar
                    impar[i] = teste[i];
                //imprime arrays
                System.out.println(par[i]);
                System.out.println(impar[i]);
                
            }
    

    Esclareçam-me p.f., é que não tou a ver saida para isto.

    Obrigado
     
    Última edição pelo moderador: 13 de Junho de 2009
  2. Baderous

    Baderous Banido

    Enganaste-te no teste de paridade. Não é teste.length, mas teste.
     
  3. hYpe

    hYpe [email protected] Member

    Porque estás a usar vectores de Strings para guardar inteiros?
     
  4. PJTuga

    PJTuga Power Member

    isso acontece porque não inicializaste nem o vector par nem o impar
    e nao podes dividir uma string por um int

    Código:
    String[] teste = {"0", "1", "2", "3"};
            String[] par = new String[4];
            String[] impar = new String[4];
    
            for (int i = 0; i < teste.length; i++) {
                if (Integer.parseInt(teste[i]) % 2 == 0) //se fôr par, adiciona ao array de strings par
                {
                    par[i] = teste[i];
                } else //se fôr impar, adiciona ao array de strings impar
                {
                    impar[i] = teste[i];
    //imprime arrays
                }
                System.out.println(par[i]);
                System.out.println(impar[i]);
    
            }
     
    Última edição: 13 de Junho de 2009
  5. hYpe

    hYpe [email protected] Member

    Para ficar correcto era preciso um contador para o vector impar e outro para o par.

    Senão os vectores ficam tipo:
    PHP:
    [ ][1][ ][3]
    [
    0][][2][4]
     
  6. luismca

    luismca Power Member

    Acho que não fui bem claro.

    quando a posição do array for 0 guarda par, quando for 1 guarda impar, 2 par, etc


    Isto é só um teste para implementar outra função noutro programa.
    Nada a ver com contas, fique bem claro.
     
  7. luismca

    luismca Power Member

    queria fazer algo do género disto:

    String[] teste = {"0","1","2","3"};
    String[] par = null;

    par[0]=teste[0];
    System.out.println(par[0]);

    igualar a posição de um array à mesma posição de outro array
     
  8. luismca

    luismca Power Member

    isso também é verdade, mas ideia aqui é igualar a posição de um array a outro array
     
  9. AliFromCairo

    AliFromCairo Power Member

    O PJTuga já te explicou como resolver o problema que tens neste momento, ou seja, inicializares os arrays par e ímpar.
     
  10. luismca

    luismca Power Member

    Ok, obrigado, vou experimentar
     

Partilhar esta Página