[RESOLVIDO]"Exception in thread "main" java.lang.NullPointerException" Como resolver?

12 respostas
D

Exception in thread "main" java.lang.NullPointerException
at l2ex9.Main.main(Main.java:26)
Java Result: 1

Estou tentando calcular a permutação de um elemento B em A, mais esta exception não deixa, como resolvo?
package l2ex9;
import java.util.Scanner;

public class Main {

   
    public static void main(String[] args) {
        String n1,n2;
        int nn1, nn2;
        int[] nd1 = null, nd2 = null;
        int x,y;
        int contOfEq=0;
        Scanner s= new Scanner(System.in);

        System.out.println("entre com o N1 ");
        n1=s.nextLine();
       nn1=Integer.parseInt(n1);
        System.out.println("entre com o N2 ");
        n2=s.nextLine();
       nn2=Integer.parseInt(n2);
        x=0;

        while(x<=n1.length()){
            
                nd1[x]=nn1%(10*(x+1));

        }

           x=0;

        while(x<=n2.length()){
                nd2[x]=nn2%(10*(x+1));

        }

        x=0;
        y=0;
        while(x<n1.length())
        {

            while(y><n2.length())
            {
                 if(nd2[y]==nd1[x])
                 {
                 contOfEq=contOfEq+1;
                 }

                 y=y+1;
            }
            x=x+1;
        }

        if(contOfEq==n1.length())
        {
            System.out.print("é permutação ");
        }
        else if(contOfEq!=n1.length())
        {
            System.out.print("não é permutação ");
        }




    }

}
>

12 Respostas

D

Fala java newb, provavelmente seu erro esta nesta linha:

nd1[x]=nn1%(10*(x+1));

Voce nao inicializou seu array.

D

Dota:
Fala java newb, provavelmente seu erro esta nesta linha:

nd1[x]=nn1%(10*(x+1));

Voce nao inicializou seu array.

Sim, mais ai não esta inicialisando?

H

qualquer cois um debug resolve

D

DarthVictor:
Dota:
Fala java newb, provavelmente seu erro esta nesta linha:

nd1[x]=nn1%(10*(x+1));

Voce nao inicializou seu array.

Sim, mais ai não esta inicialisando?

Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.

D

Dota:
DarthVictor:
Dota:
Fala java newb, provavelmente seu erro esta nesta linha:

nd1[x]=nn1%(10*(x+1));

Voce nao inicializou seu array.

Sim, mais ai não esta inicialisando?

Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.

Olhe o “= null” no comesso do código.

N

E você acha que isso int[] nd1 = null e depois isso nd1[x] = 1 funciona?
Se sim, é preciso dar uma estudada um pouco mais no básico do Java amigo. Tem ótimas apostilas da Caleum para download e por sinal, gratuita.
De preferência da FJ-11.

Tente assim, por exemplo: int[] nd1 = new int[10].
Um array de 10 posições.

Se quiser, leia sobre ArrayList(), acho muito mais dinamico :slight_smile:

Abraços.

H
int[] nd1 = null, nd2 = null;

Você não criou o vtor, ele está null, você está setando o valor em um local que não existe.

V

Daí o nome NullPointerException. Viu só? Não é mera coincidência. :wink:

F

DarthVictor:
Dota:
DarthVictor:
Dota:
Fala java newb, provavelmente seu erro esta nesta linha:

nd1[x]=nn1%(10*(x+1));

Voce nao inicializou seu array.

Sim, mais ai não esta inicialisando?

Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.

Olhe o “= null” no comesso do código.

Coloca assim que acho que vai funcionar. (Não entendi muito o seu código mas acho que é isso que procura).

int[] nd1 = new int[n1.length()];

Flw

H

Você ainda vai ver muito essa excessão em sua vida d programador :idea:

N

rsrs…pois é né? rs.

D

Frantic Avenger:
DarthVictor:
Dota:
DarthVictor:
Dota:
Fala java newb, provavelmente seu erro esta nesta linha:

nd1[x]=nn1%(10*(x+1));

Voce nao inicializou seu array.

Sim, mais ai não esta inicialisando?

Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.

Olhe o “= null” no comesso do código.

Coloca assim que acho que vai funcionar. (Não entendi muito o seu código mas acho que é isso que procura).

int[] nd1 = new int[n1.length()];

Flw

Poxa, valeu, eu estava declarando o vetor de forma errada. Estava muito sonolento.

rsrs…pois é né? rs.

Eu sei, já percebi meu erro. :slight_smile:

Tem coisa pior, ter um chefe/cliente que quer que você adivinhe o que ele quer é bem pior que uma excessão porque programei errado.

Criado 13 de setembro de 2010
Ultima resposta 13 de set. de 2010
Respostas 12
Participantes 6