Ai pessoal sou novo aqui na site, mas gostaria que vocês me ajudassem neste algoritmo, pois ainda não entendi o porque que não está passando pela parte que começa na linha 18 a 31. Aqui no meu Netbeans está acusando java.lang.NumberFormatException: null. O problema maior é que ele executa as condições da linha que eu já citei, mas não passa para as próximas linhas. Quando eu tiro ele o resto do código é executado normal. Esses comentários eu coloquei para facilitar o entendimento do código, já que eu só coloquei a parte que está dando erro.
OBS.: A variável "funcao" do tipo string recebe uma função matemática : 5x^2+2x
Se poderem ajudar agradeço! Valeu
[code]x = 0; e1 = 0; m = 0;//variaveis resetada para o proximo laço.
System.out.println("passou na linha 55");
for(i = 0; i < funcao.length(); i++){
if(Character.isDigit(funcao.charAt(i))){//Essa parte do codigo verifica se o indice passado pelo metodo charAt(i) da string "funcao" é igual a um numero, se for ele armazena o total em "v_numero"
v_numero = v_numero + 1;
//System.out.println("v_numero: "+v_numero);
}
if(!Character.isDigit(funcao.charAt(i))){//Essa parte do codigo verifica se o indice passado pelo metodo charAt(i) da string "funcao" é diferente de um numero, se for ele armazena o total em "v_var".
v_var = v_var + 1;
//System.out.println("v_var: "+v_var);
}
}
System.out.println("passou na linha 57");
for(i = 0; i < v_var; i++){
//System.out.println("passou");//essas partes é só para ter noção se passou na execução
if (!var[i].isEmpty()) {//Essa condição verifica se existe algum valor na matriz "var[]" do tipo string, que foi feita só para armazenar os caracteres iguais a "x", se for verdadeiro ela armazena o total encontrado na variavel "x" do tipo int.
System.out.println("ok");
x = x+1;
System.out.println("x: "+x);
}
if (!elevado[i].isEmpty()) {//Essa condição verifica se existe algum valor na matriz "elevado[]" do tipo string, que foi feita só para armazenar os caracteres iguais a "^", se for verdadeiro ela armazena o total encontrado na variavel "e1" do tipo int.
System.out.println("elevado");
e1 = e1 + i;
}
if (!s_mais[i].isEmpty()) {//Essa condição verifica se existe algum valor na matriz "s_mais[]" do tipo string, que foi feita só para armazenar os caracteres iguais a "+", se for verdadeiro ela armazena o total encontrado na variavel "m" do tipo int.
System.out.println("s_mais");
m = m + i;
}
}
i = 0;
while(i < v_numero){y = 0;
if(i > 0 && x > 0){//Essa parte do codigo é onde eu armazeno os valores atravéz do metodo "substring" com o "index e o endindex" passado por variaveis.
//System.out.println("passou 1");
base[i] = funcao.substring(Integer.parseInt(s_mais[y])+1, Integer.parseInt(var[i]));
System.out.println("base: "+base[i]);
y++; i++;
}else{
//System.out.println("passou 0");
base[i] = funcao.substring(0, Integer.parseInt(var[y]));
System.out.println("base: "+base[i]);
i++;
}
}[/code]