/*
Ejercicio 4
Verificar si una cadena de texto almacenada en la String nif, es un NIF correcto o no. Si lo es,
se mostrará por consola su parte numérica; si no lo es se mostrará el mensaje "NIF no valido". Se tendrá en cuenta lo siguiente:
Suponer que los NIFs tienen 8 dígitos y, a continuación, una letra (no importa que sea mayúscula o minúscula).
PISTAS: dos condiciones que debe cumplir el NIF: tener 9 caracteres y que el último sea una letra.
Comprobado esto, verificar que el resto de caracteres son dígitos.
RECOMENDACIONES:
Usar el método length() de java.lang.String para conocer el número de caracteres de una cadena de texto.
Usar el método estático isLetter(char c) de java.lang.Character para comprobar que un carácter es una letra.
Usar el método estático isDigit(char c) de java.lang.Character para comprobar que un carácter es un dígito.
Usar el método substring(int inicio, int fin) de java.lang.String para obtener la parte numérica del nif
Autor: Arantza lozano
*
*/
import java.io.*;
public class comprobarNif {
//Pedimos al usuario que introduzca el DNI y recogemos los datos de teclado
System.
out.
println("Introduzca DNI");
//Comprobamos que el DNI es válido
mostrarMensaje(nif, comprobar(nif));
}
static boolean comprobar
(String nif
) { if (nif.length() == 9) {
for (int i = 0; i<8; i++){
char cc=nif.charAt(i);
return false;
}
}
char l=nif.charAt(8);
return false;
}
} else {
return false;
}
return true;
}
static void mostrarMensaje
(String nif,
boolean nifValido
) { if (nifValido) {
msg = nif + " es un NIF valido";
} else {
msg = nif + " no es un NIF valido";
}
if (nifValido) {
System.
out.
println("Parte numérica del nif: " + nif.
substring(0,
8)); }
}
}
LyoKRWplcmNpY2lvIDQKClZlcmlmaWNhciBzaSB1bmEgY2FkZW5hIGRlIHRleHRvIGFsbWFjZW5hZGEgZW4gbGEgU3RyaW5nIG5pZiwgZXMgdW4gTklGIGNvcnJlY3RvIG8gbm8uIFNpIGxvIGVzLApzZSBtb3N0cmFyw6EgcG9yIGNvbnNvbGEgc3UgcGFydGUgbnVtw6lyaWNhOyBzaSBubyBsbyBlcyBzZSBtb3N0cmFyw6EgZWwgbWVuc2FqZSAiTklGIG5vIHZhbGlkbyIuIFNlIHRlbmRyw6EgZW4gY3VlbnRhIGxvIHNpZ3VpZW50ZToKU3Vwb25lciBxdWUgbG9zIE5JRnMgdGllbmVuIDggZMOtZ2l0b3MgeSwgYSBjb250aW51YWNpw7NuLCB1bmEgbGV0cmEgKG5vIGltcG9ydGEgcXVlIHNlYSBtYXnDunNjdWxhIG8gbWluw7pzY3VsYSkuCgpQSVNUQVM6IGRvcyBjb25kaWNpb25lcyBxdWUgZGViZSBjdW1wbGlyIGVsIE5JRjogdGVuZXIgOSBjYXJhY3RlcmVzIHkgcXVlIGVsIMO6bHRpbW8gc2VhIHVuYSBsZXRyYS4KQ29tcHJvYmFkbyBlc3RvLCB2ZXJpZmljYXIgcXVlIGVsIHJlc3RvIGRlIGNhcmFjdGVyZXMgc29uIGTDrWdpdG9zLgoKUkVDT01FTkRBQ0lPTkVTOgpVc2FyIGVsIG3DqXRvZG8gbGVuZ3RoKCkgZGUgamF2YS5sYW5nLlN0cmluZyBwYXJhIGNvbm9jZXIgZWwgbsO6bWVybyBkZSBjYXJhY3RlcmVzIGRlIHVuYSBjYWRlbmEgZGUgdGV4dG8uClVzYXIgZWwgbcOpdG9kbyBlc3TDoXRpY28gaXNMZXR0ZXIoY2hhciBjKSBkZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIHBhcmEgY29tcHJvYmFyIHF1ZSB1biBjYXLDoWN0ZXIgZXMgdW5hIGxldHJhLgpVc2FyIGVsIG3DqXRvZG8gZXN0w6F0aWNvIGlzRGlnaXQoY2hhciBjKSBkZSBqYXZhLmxhbmcuQ2hhcmFjdGVyIHBhcmEgY29tcHJvYmFyIHF1ZSB1biBjYXLDoWN0ZXIgZXMgdW4gZMOtZ2l0by4KVXNhciBlbCBtw6l0b2RvIHN1YnN0cmluZyhpbnQgaW5pY2lvLCBpbnQgZmluKSBkZSBqYXZhLmxhbmcuU3RyaW5nIHBhcmEgb2J0ZW5lciBsYSBwYXJ0ZSBudW3DqXJpY2EgZGVsIG5pZgoKQXV0b3I6IEFyYW50emEgbG96YW5vCiAqCiAqLwoKaW1wb3J0IGphdmEuaW8uKjsKCnB1YmxpYyBjbGFzcyBjb21wcm9iYXJOaWYgewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKICAgICAgICAvL1BlZGltb3MgYWwgdXN1YXJpbyBxdWUgaW50cm9kdXpjYSBlbCBETkkgeSByZWNvZ2Vtb3MgbG9zIGRhdG9zIGRlIHRlY2xhZG8KICAgICAgICBJbnB1dFN0cmVhbVJlYWRlciBpc3IgPSBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoU3lzdGVtLmluKTsKICAgICAgICBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3IpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkludHJvZHV6Y2EgRE5JIik7CiAgICAgICAgU3RyaW5nIG5pZiA9IGJyLnJlYWRMaW5lKCk7CgogICAgICAgIC8vQ29tcHJvYmFtb3MgcXVlIGVsIEROSSBlcyB2w6FsaWRvCiAgICAgICAgbW9zdHJhck1lbnNhamUobmlmLCBjb21wcm9iYXIobmlmKSk7CiAgICB9CgogICAgc3RhdGljIGJvb2xlYW4gY29tcHJvYmFyKFN0cmluZyBuaWYpIHsKICAgICAgICBpZiAobmlmLmxlbmd0aCgpID09IDkpIHsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGk8ODsgaSsrKXsKICAgICAgICAgICAgICAgIGNoYXIgY2M9bmlmLmNoYXJBdChpKTsKICAgICAgICAgICAgICAgIGlmIChDaGFyYWN0ZXIuaXNEaWdpdChjYyk9PWZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNoYXIgbD1uaWYuY2hhckF0KDgpOwogICAgICAgICAgICBpZiAoQ2hhcmFjdGVyLmlzTGV0dGVyKGwpPT1mYWxzZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBzdGF0aWMgdm9pZCBtb3N0cmFyTWVuc2FqZShTdHJpbmcgbmlmLCBib29sZWFuIG5pZlZhbGlkbykgewogICAgICAgIFN0cmluZyBtc2cgPSAiIjsKICAgICAgICBpZiAobmlmVmFsaWRvKSB7CiAgICAgICAgICAgIG1zZyA9IG5pZiArICIgZXMgdW4gTklGIHZhbGlkbyI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbXNnID0gbmlmICsgIiBubyBlcyB1biBOSUYgdmFsaWRvIjsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKG1zZyk7CiAgICAgICAgaWYgKG5pZlZhbGlkbykgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBhcnRlIG51bcOpcmljYSBkZWwgbmlmOiAiICsgbmlmLnN1YnN0cmluZygwLCA4KSk7CiAgICAgICAgfQogICAgfQp9Cg==