Validar una cédula Ecuatoriana | Java
El documento de identidad ecuatoriano de una persona natural no obligada a llevar RUC(Registro Único de Contribuyente) se valida de la siguiente manera:
- La cédula tiene 10 dígitos no puede tener ni más ni menos.
- Los dos primeros dígitos es un número no mayor a 24 ni menor.
- El tercer dígito es un número no mayor a 6 es decir es un número del 0 al 6.
- Los demás son dígitos consecutivos.
- El último dígito es calculado con los 9 anteriores dígitos de la siguiente manera
- Los dígitos pares son multiplicados por 2 y si el resultado es mayor o igual a 10 se le resta 9
- Los dígitos impares son multiplicados por 1
- A la suma de todos los dígitos conjuntamente con la operación anterior se le resta la decena superior, es decir si la suma sale 31 debemos restar 40 - 31 = 9
private boolean isEcuadorianDocumentValid(String document) {
byte sum = 0;
try {
if (document.trim().length() != 10)
return false;
String[] data = document.split("");
byte verifier = Byte.parseByte(data[0] + data[1]);
if (verifier < 1 || verifier > 24)
return false;
byte[] digits = new byte[data.length];
for (byte i = 0; i < digits.length; i++)
digits[i] = Byte.parseByte(data[i]);
if (digits[2] > 6)
return false;
for (byte i = 0; i < digits.length - 1; i++) {
if (i % 2 == 0) {
verifier = (byte) (digits[i] * 2);
if (verifier > 9)
verifier = (byte) (verifier - 9);
} else
verifier = (byte) (digits[i] * 1);
sum = (byte) (sum + verifier);
}
if ((sum - (sum % 10) + 10 - sum) == digits[9])
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
Estos son los pasos que se realizan en el lenguaje de programación:- Verificamos que la cadena de texto tenga 10 caracteres
- Declaramos un arreglo que contendrá cada dígito es decir un arreglo de 10
- Verificamos los dos primeros dígitos
- Pasamos el Arreglo de String a byte
- Comprobamos el tercer dígito
- Ejecutamos la operación de multiplicar por 2 los dígitos pares y por 1 los impares, por último realizamos la suma y resta final de la decena superior y finalmente comprobamos que el último dígito sea igual a las operaciones realizadas
Comentarios
Publicar un comentario