Checar CNPJ, outro método (testem!)

Olá amigos, sou novo no fórum, podem me corrigir a vontade ok! Gostaria que vcs vejam esse código fonte testem e de sugestões. Segue abaixo um programa da facu onde o professor quer testar um CNPJ por outro método.

0 8 4 8 0 0 7 1 / 0 0 0 3 - 0 2

a) Os dígitos em negrito formam o número 0407
0407 x 2 = 814 = 8 + 1 + 4 = 13

b) Some os dígitos que não estão em negrito
8 + 8 + 0 + 1 = 17

c) Some os dois resultados anteriores

                13 +  17 = [b]30[/b]

Se o resultado terminar com zero o CNPJ existe.

package teste_exe06;

import javax.swing.*;
public class Main {

    
    public static void main(String[] args) {
       int i, quest, n2, n3;
       StringBuffer na = new StringBuffer();
       String cnpj;
       boolean flag = true;
       
       do{
           cnpj=JOptionPane.showInputDialog(null,"Entre com os 8 primeiros números do CNPJ");
           na.delete(0,na.length());
           n2=0;
           n3=0;
           
           if(cnpj.length()!=8)
               JOptionPane.showMessageDialog(null,"Formato incorreto!","ERRO",0);
           else{
               for(i=0;i<7;i+=2)
                   na.append(cnpj.charAt(i));
               
               n2=Integer.parseInt(na.toString());
               n2*=2;
               na.delete(0,na.length());
               na.append(n2);
               n2=0;
               
               for(i=0;i<na.length();i++)
                   n2+=Integer.parseInt(String.valueOf(na.charAt(i)));
               
               for(i=1;i<8;i+=2)
                   n3+=Integer.parseInt(String.valueOf(cnpj.charAt(i)));
               
               n2+=n3;
               
               if(n2%10==0)
                   JOptionPane.showMessageDialog(null,"O CNPJ é válido!","Verificação",1);
               else
                   JOptionPane.showMessageDialog(null,"O CNPJ não é válido!","Verificação",0);
               
               quest=JOptionPane.showConfirmDialog(null,"Continuar?","Aviso",0);
               
               if(quest==1)
                   flag = false;
               
           }                  
       }while(flag);   
            System.exit(0);
              
    }

}

Obrigado!

Sim, e qual seria sua dúvida?

Isso só verifica os 8 primeiros números? E os digitos depois? Faz algum sentido usar essa validação ao invés de fazer a validação por mod11?

Até!

[quote=maquiavelbona]Isso só verifica os 8 primeiros números? E os digitos depois? Faz algum sentido usar essa validação ao invés de fazer a validação por mod11?
[/quote]

A validação mod11 valida apenas se o numero não foi mal digitado. O que o colega está sugerindo é um método de valdiar se o CNPJ existe. Não se está bem escrito, mas se foi realmente emitido pela receita.

[quote=fireshild]Olá amigos, sou novo no fórum, podem me corrigir a vontade ok! Gostaria que vcs vejam esse código fonte testem e de sugestões. Segue abaixo um programa da facu onde o professor quer testar um CNPJ por outro método.

0 8 4 8 0 0 7 1 / 0 0 0 3 - 0 2

a) Os dígitos em negrito formam o número 0407
0407 x 2 = 814 = 8 + 1 + 4 = 13

b) Some os dígitos que não estão em negrito
8 + 8 + 0 + 1 = 17

c) Some os dois resultados anteriores

                13 +  17 = [b]30[/b]

Se o resultado terminar com zero o CNPJ existe.

[/quote]

infelizmente isso não é verdade.

07.724.702/0001-67 fonte
Existe e a soma final é 31 (não termina em zero)

0 7 4 0 x 2 = 148 = 13
7 2 7 2 = 18
18+13 = 31

[quote]sergiotaborda wrote:
infelizmente isso não é verdade.

07.724.702/0001-67 fonte
Existe e a soma final é 31 (não termina em zero)

0 7 4 0 x 2 = 148 = 13
7 2 7 2 = 18
18+13 = 31
[/quote]

Ótima observação, fiquei tmb com o pé atrás com esse método ai, vou discutir com o prof sobre o assunto.