Validador de RUT en Java
El RUT es el Rol Único Tributario es un número único Chileno que sirve como identificador tributario. El RUT consta de dos partes, el número y el dígito verificador separados por un guión. En el siguiente ejemplo se toma como RUT el número 30.686.957-X, donde 30.686.957 es el número del RUT y X es el dígito verificador que no conocemos o que queremos verificar: Se procede a tomar el número de RUT de derecha a izquierda, multiplicando cada dígito por los números que componen la serie numérica 2,3,4,5,6,7; y sumando el resultado de estos productos, como se muestra a continuación (si se ha aplicado la serie hasta el 7 y quedan dígitos por multiplicar, se comienza la serie nuevamente):
7 × 2 = 14,5 × 3 = 15,9 × 4 = 36,6 × 5 = 30,8 × 6 = 48,6 × 7 = 42,0 × 2 = 0,3 × 3 = 9Entonces la suma de los productos es
14+15+36+30+48+42+0+9 = 194Para poder hacer con Java esto tenemos que invertir el número:
public static Object[] invertir(Object[] array) { Object[] invertir_int = new Object[array.length]; int maximo = array.length;
for (int i = 0; i < array.length; i++) { Object j = array[maximo - 1]; invertir_int[maximo - 1] = array[i]; maximo--; } return invertir_int;}Ahora, vamos multiplicando por la serie de números y acumulando la suma en rutSumado.
int a = 2;for (int i = 0; i < array.length; i++) { array[i] = Integer.parseInt((String) array[i]) * a; rutSumado += Integer.parseInt(String.valueOf(array[i])); if (a == 7) { a = 1; } a++;}Al número obtenido por la suma del producto de cada dígito por la serie ya mencionada, se le aplica módulo 11, o sea, se divide por 11 y se determina el resto de la división.
194: 11 = 17Resto: 7Ahora a 11 se le resta el resto:
11 - 7 = 4El código Java sería
int resto = rutSumado % 11;String Digito = String.valueOf(11 - resto);Con el valor obtenido: - Si el resultado es 11, el dígito verificador será 0.
- Si el resultado es 10, el dígito verificador será K.
- En otro caso el resultado será el dígito verificador.
Para hacer esto con Java:
if (Digito.equals("11")) { Digito = "0";}
if (Digito.equals("10")) { Digito = "K";}Como en el ejemplo el resultado de la resta es 4, el dígito verificador es 4. Por ende, el RUT del ejemplo es el 30.686.957-4. Saludos, Espero que les sea de ayuda :D
Descarga el código de Validador de RUT en Java
Código fuente que nos sirve para poder codificar un validador de RUT en Java.