Validador de RUT en Java

09/Dic/2010 Java , , 4 Comentarios

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 = 9

Entonces la suma de los productos es

14+15+36+30+48+42+0+9 = 194

Para poder hacer con Java esto tenemos que invertir el número:

  1. public static Object[] invertir(Object[] array) {
  2. Object[] invertir_int = new Object[array.length];
  3. int maximo = array.length;
  4.  
  5. for (int i = 0; i < array.length; i++) {
  6. Object j = array[maximo - 1];
  7. invertir_int[maximo - 1] = array[i];
  8. maximo--;
  9. }
  10. return invertir_int;
  11. }

Ahora, vamos multiplicando por la serie de números y acumulando la suma en rutSumado.

  1. int a = 2;
  2. for (int i = 0; i < array.length; i++) {
  3. array[i] = Integer.parseInt((String) array[i]) * a;
  4. rutSumado += Integer.parseInt(String.valueOf(array[i]));
  5. if (a == 7) {
  6. a = 1;
  7. }
  8. a++;
  9. }

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 = 17
Resto: 7

Ahora a 11 se le resta el resto:

11 - 7 = 4

El código Java sería

  1. int resto = rutSumado % 11;
  2. 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 😀

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

4 comentarios en “Validador de RUT en Java”

Pablo Ruiz

QualityInfoSolution

http://www.qualityinfosolutions.com/validador-de-rut-chileno-en-java/

Espero sea lo que buscaban. No duden en dejar sus dudas en nuestro sitio

Saludos

Pablo Ruiz

Alexis

Estimado:

Excelente aporte, un solo problema cuando ingresas un rut con k no funca tira falso, si fueras tan gentil de corregir el código, lo en intentado pero no resulta

Pablo Ruiz

Nefi

Gracias 😀

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*