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

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:
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:
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]
 
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.
 
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
 
Back
Topo