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:
  1. Verificamos que la cadena de texto tenga 10 caracteres
  2. Declaramos un arreglo que contendrá cada dígito es decir un arreglo de 10
  3. Verificamos los dos primeros dígitos
  4. Pasamos el Arreglo de String a byte
  5. Comprobamos el tercer dígito
  6. 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

Entradas populares