Coloco CNPJ e CPF validos e ele diz como invalidos, não sei o que está errado, se puderem me ajudar.
CNPJ
String cnpj;
int res = 0, mul = 2, cal;
char ver1, ver2;
System.out.print("Informe o CNPJ: ");
cnpj = teclado.next();
for (int i = 11; i >= 0; i--) {
res += (((int) cnpj.charAt(i) - 48) * mul);
mul++;
if (mul == 10) {
mul = 2;
}
}
cal = res % 11;
if (cal == 0 || cal == 1) {
ver1 = '0';
} else {
ver1 = (char) ((11 - cal) + 48);
}
for (int i = 12; i >= 0; i--) {
res += (((int) cnpj.charAt(i) - 48) * mul);
mul++;
if (mul == 10) {
mul = 2;
}
}
cal = res % 11;
if (cal == 0 || cal == 1) {
ver2 = '0';
} else {
ver2 = (char) ((11 - cal) + 48);
}
if (cnpj.charAt(12) == ver1 && cnpj.charAt(13) == ver2) {
System.out.println("Resultado: " + cnpj.substring(0, 2) + "."
+ cnpj.substring(2, 5) + "." + cnpj.substring(5, 8) + "/" + cnpj.substring(8, 12) + "-"
+ cnpj.substring(12, 14) + " CNPJ valido!");
} else {
System.out.println("!ERRO! " + cnpj.substring(0, 2) + "."
+ cnpj.substring(2, 5) + "." + cnpj.substring(5, 8) + "/" + cnpj.substring(8, 12) + "-"
+ cnpj.substring(12, 14) + " CNPJ Invalido!");
}
CPF
System.out.print("Informe um CPF: ");
String cpf = usuario.next();
int res = 0, cal;
char ver1, ver2;
for (int i = 0; i < 9; i++) {
res += ((int)(cpf.charAt(i)-48)* (10-i));
}
cal = 11 - (res % 11);
if (cal == 10 || cal == 11) {
ver1 = '0';
}
else{
ver1 = (char)(cal + 48);
}
for (int i = 0; i < 10; i++) {
res += ((int)(cpf.charAt(i)-48)* (11-i));
}
cal = 11 - (res % 11);
if(cal == 10 || cal == 11){
ver2 = '0';
}
else{
ver2 = (char)(cal + 48);
}
if (ver1 == cpf.charAt(9) && ver2 == cpf.charAt(10)) {
System.out.println("Resultado: "+cpf.substring(0,3)+"."+cpf.substring(3,6)+"."+
cpf.substring(6,9)+"-"+cpf.substring(9,11)+" valido");
}
else{
System.out.println("!ERRO! "+cpf.substring(0,3)+"."+cpf.substring(3,6)+"."+
cpf.substring(6,9)+"-"+cpf.substring(9,11)+" CPF Invalido");
}