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?
[code]
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 ");
}
}
}
[/code]>
Dota
Setembro 13, 2010, 3:19pm
#2
Fala java newb, provavelmente seu erro esta nesta linha:
nd1[x]=nn1%(10*(x+1));
Voce nao inicializou seu array.
[quote=Dota]Fala java newb, provavelmente seu erro esta nesta linha:
nd1[x]=nn1%(10*(x+1));
Voce nao inicializou seu array.[/quote]
Sim, mais ai não esta inicialisando?
hiarlay
Setembro 13, 2010, 3:22pm
#4
qualquer cois um debug resolve
Dota
Setembro 13, 2010, 3:28pm
#5
[quote=DarthVictor][quote=Dota]Fala java newb, provavelmente seu erro esta nesta linha:
nd1[x]=nn1%(10*(x+1));
Voce nao inicializou seu array.[/quote]
Sim, mais ai não esta inicialisando?[/quote]
Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.
[quote=Dota][quote=DarthVictor][quote=Dota]Fala java newb, provavelmente seu erro esta nesta linha:
nd1[x]=nn1%(10*(x+1));
Voce nao inicializou seu array.[/quote]
Sim, mais ai não esta inicialisando?[/quote]
Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.[/quote]
Olhe o “= null” no comesso do código.
nel
Setembro 13, 2010, 3:40pm
#7
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
Abraços.
hiarlay
Setembro 13, 2010, 3:40pm
#8
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.
Daí o nome Null PointerException. Viu só? Não é mera coincidência.
[quote=DarthVictor][quote=Dota][quote=DarthVictor][quote=Dota]Fala java newb, provavelmente seu erro esta nesta linha:
nd1[x]=nn1%(10*(x+1));
Voce nao inicializou seu array.[/quote]
Sim, mais ai não esta inicialisando?[/quote]
Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.[/quote]
Olhe o “= null” no comesso do código.[/quote]
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
hiarlay
Setembro 13, 2010, 3:47pm
#11
Você ainda vai ver muito essa excessão em sua vida d programador :idea:
[quote=Frantic Avenger][quote=DarthVictor][quote=Dota][quote=DarthVictor][quote=Dota]Fala java newb, provavelmente seu erro esta nesta linha:
nd1[x]=nn1%(10*(x+1));
Voce nao inicializou seu array.[/quote]
Sim, mais ai não esta inicialisando?[/quote]
Não, voce tem que inicializar no momento que esta criando, desse jeito vc nao tem a posição “x”.[/quote]
Olhe o “= null” no comesso do código.[/quote]
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[/quote]
Poxa, valeu, eu estava declarando o vetor de forma errada. Estava muito sonolento.
rsrs…pois é né? rs.[/quote]
Eu sei, já percebi meu erro.
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.