Separar Número y Letra del NIF en Java
Vamos a ver un ejemplo sencillo de cómo separar el número y la letra del NIF que aparece en los carnets de identidad.
Puede ocurrirnos que nos lo den como un String y necesitemos guardarlo en variables distintas o imprimir sólo el DNI. Nosotros simplemente mostraremos el número en una línea y la letra en otra.
Se nos pueden presentar dos casos:
Caso A. Número y letra separados por un guión. Ejemplo: 11111111-A.
Éste se resuelve de forma más sencilla. Usamos StringToquenizer poniendo como carácter separador el guión:
String strDatos="11111111-A";
StringTokenizer tokens=new StringTokenizer(strDatos, "-");
while(tokens.hasMoreTokens()){
System.out.println(tokens.nextToken());
}
Caso B. Número y letra van seguidos. Ejemplo: 11111111A.
Aquí no tenemos caracter separador, así que tenemos que convertir el String en un vector de Char. Recorreremos ese vector comprobando si la posición actual es una letra. Para ello usaremos el método isLetter de la clase Character:
String strDatos="111111A";
char[] ca = strDatos.toCharArray();
for(int i=0; i<strDatos.length();i++)
{
if(Character.isLetter(ca[i])) //Si es letra
System.out.println("\n"+ca[i]); //Salto de línea e imprimimos el carácter
else //Si no es letra
System.out.print(ca[i]); //Imprimimos el carácter
}
Tweet