Java - validar nif

 
Vista:
Imágen de perfil de Charly
Val: 178
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

validar nif

Publicado por Charly (118 intervenciones) el 27/12/2016 15:28:48
Hola, estoy creando una aplicación para crear clientes y proveedores de una tienda.
Tienen un atributo que es el nif y tengo que validarlo antes de crear el objeto.
He creado este método de validación:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static boolean validarNif(String nif){
        boolean correcto=false;
        Pattern pattern=Pattern.compile("(\\d{1,8})([TRWAGMYFPDXBNJZSQVHLCKEtrwagmyfpdxbnjzsqvhlcke])");
        Matcher matcher=pattern.matcher(nif);
        if(matcher.matches()){
            String letra=matcher.group(2);
            String letras="TRWAGMYFPDXBNJZSQVHLCKE";
            int index=Integer.parseInt(matcher.group(1));
            index=index%23;
            String reference=letras.substring(index,index+1);
            if(reference.equalsIgnoreCase(letra)){
                correcto=true;
            }else{
                correcto=false;
            }
        }else{
            correcto=false;
        }
        return correcto;
    }
El problema es que, tal y como está, metiendo un nif correcto me dice que es incorrecto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Charly
Val: 178
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

validar nif

Publicado por Charly (118 intervenciones) el 27/12/2016 15:46:23
Actualizo el post, ya que, por ejemplo meto el nif 12345678a, me dice nif erróneo, pero si introduzco el mio me dice que esta bien.
No entiendo como controla los números el método.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

validar nif

Publicado por Alberto G. Reino (2 intervenciones) el 01/01/2017 17:12:26
No sólo está verificando la cantidad de números y letras introducidas. La letra del nif se calcula en función del número y se está verificando que la letra corresponde al número introducido.
http://www.calcularletradni.com/

Saludos.
Alberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Charly
Val: 178
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

validar nif

Publicado por Charly (118 intervenciones) el 01/01/2017 17:29:48
Hola, Alberto.
Muchas gracias por tu respuesta.
No me había dado cuenta de ese detalle.
Claro, parece razonable que, según el dni que pongas, te saque una letra u otra.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar