Exception in thread “main” java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

1 resposta
poojava
A

Boa noite,

Estou aprendendo programação orientada a objetos e tenho que fazer um programa de validação de inscrição estadual, onde o programa vai receber um numero de inscrição e um estado e vai confirmar se esse numero é valido ou não de acordo com a regra para validação de cada estado.

Estou fazendo somente o estado de são paulo acredito já ter terminado os cálculos para validação só que ao executar aparecem alguns erros, irei colocar o código do programa e os erros em questão.

package aplicacaocliente;

public class InscricaoEstadual {

static String pesos =1,3,4,5,6,7,8,10;

public static boolean ValidarInscricaoEstadual(String p_Inscricao, String p_Estado){

if (p_Estado == SP){

return ValidarIE_SP(p_Inscricao);

}

return true;

}
// validando o código de são paulo
public static boolean ValidarIE_SP(String p_Inscricao){
    int resultadoDigito9 = 0;
    int resultadoDigito12 = 0;
    int i;
    //p_Inscricao = "110042490114";// exemplo de numero de inscrição
    
    // calculo para verificação do 9° digito
    for (i = 0 ; i<8 ; i++)
    {
        
        resultadoDigito9 = resultadoDigito9 + ( Integer.parseInt(p_Inscricao.substring(i, i))  *  Integer.parseInt(pesos.substring(i, i)) ) ; 
    }
    int resultadomodulo = resultadoDigito9 % 11;
    if (resultadomodulo == 10){
        resultadomodulo = 0;
    }       
   
    if (  resultadomodulo != Integer.parseInt(p_Inscricao.substring(8))){
        return false;
    }
    
    
    // calculo para verificação do 12° digito
    for (i = 0 ; i<11 ; i++)
    {            
        resultadoDigito12 = resultadoDigito12 + ( Integer.parseInt(p_Inscricao.substring(i, i))  *  Integer.parseInt(pesos.substring(i, i)) ) ; 
    }
    resultadomodulo = resultadoDigito12 % 11;
    if (resultadomodulo == 10){
        resultadomodulo = 0;
    }       
   
    if (  resultadomodulo != Integer.parseInt(p_Inscricao.substring(11))     ){
        return false;
        
    }
    
    return true;        
    
}

}

package aplicacaocliente;

public class AplicacaoCliente {

public static void main(String[] args) {

//JFCadastroCliente objCadastroCliente = new JFCadastroCliente();
//objCadastroCliente.setVisible(true);

InscricaoEstadual objInscricaoEstadual = new InscricaoEstadual();
    objInscricaoEstadual.ValidarInscricaoEstadual("123002516539", "SP");

}

}

e agora os erros ao tentar executar o código:

Exception in thread “main” java.lang.NumberFormatException: For input string: ""

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)

at java.lang.Integer.parseInt(Integer.java:592)

at java.lang.Integer.parseInt(Integer.java:615)

at aplicacaocliente.InscricaoEstadual.ValidarIE_SP(InscricaoEstadual.java:24)

at aplicacaocliente.InscricaoEstadual.ValidarInscricaoEstadual(InscricaoEstadual.java:7)

at aplicacaocliente.AplicacaoCliente.main(AplicacaoCliente.java:11)

C:\Users\Anderson\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1

Qualquer ajuda é bem vinda.

Desde já Agradeço.

1 Resposta

N

Amigo, pelas mensagens de erro creio que o principal problema seja na ulitização do método substring:

vale a pena dar uma olhada nisso Como funciona o método substring?
Além do mais veja que você está colocando números e vírgulas:

imagine o que acontece quando ele pega a parte da string que é uma vírgula e converte pra Integer? Bons estudos

Criado 24 de novembro de 2018
Ultima resposta 25 de nov. de 2018
Respostas 1
Participantes 2