Skip to content

Instantly share code, notes, and snippets.

@fabriciofx
Created December 16, 2014 20:50
Show Gist options
  • Select an option

  • Save fabriciofx/56e38cb144b1d40bce40 to your computer and use it in GitHub Desktop.

Select an option

Save fabriciofx/56e38cb144b1d40bce40 to your computer and use it in GitHub Desktop.
Código para validar o CPF de pessoa física
public static boolean valida(String numero) {
if (numero == null || !numero.matches("^[0-9]{11}$")) {
throw new IllegalArgumentException("número de CPF inválido!");
}
int dv1, dv2;
int num[] = new int[11];
for (int i = 0; i < num.length; i++) {
char c = numero.charAt(i);
num[i] = Character.getNumericValue(c);
}
dv1 = 1 * num[0] + 2 * num[1] + 3 * num[2];
dv1 += 4 * num[3] + 5 * num[4] + 6 * num[5];
dv1 += 7 * num[6] + 8 * num[7] + 9 * num[8];
dv1 = dv1 % 11;
dv1 = dv1 % 10;
dv2 = 1 * num[1] + 2 * num[2] + 3 * num[3];
dv2 += 4 * num[4] + 5 * num[5] + 6 * num[6];
dv2 += 7 * num[7] + 8 * num[8] + 9 * dv1;
dv2 = dv2 % 11;
dv2 = dv2 % 10;
return dv1 == num[9] && dv2 == num[10];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment