Untitled
unknown
plain_text
2 years ago
2.8 kB
4
Indexable
Ejercicio 2 (2 Puntos) Habrá que crear un programa que contenga un método estático validarNSS que validará un número de la seguridad social. Se le pasará como parámetro (numeroSS) un String y devolverá un booleano indicando si el código es correcto según el formato correspondiente. El número de afiliación a la seguridad social consta de cuatro partes: XX-aa-bbbbbbbb-cc Los 2 primeros caracteres (XX) son letras cualesquiera del alfabeto. Los 2 primeros dígitos (a) son un indicaivo de la provincia Los 8dígitos centrales (b) son el nº del asegurado dentro de cada provincia. Los 2 dígitos finales (c) son dígitos de control. Cabe la posibilidad de que el número de la seguridad social se escriba sin guiones. Los dígitos de control (c) se obtienen a partir de las otras dos partes (a) y (b) de la siguiente forma: si (b<10000000) entonces d= b + a * 10000000 si no d= valor numérico de (a concatenado con b) c = d % 97 //resto de la división entera ---------------------------------------------------------------------------------------------------------------- public static boolean isNSS(String nss) { // String regEx = "^[A-Z]{2}-[0-9]{2}-[0-9]{8}-[0-9]{2}$"; String regex = "^[A-Z]{2}-[0-9]{2}-[0-9]{8}-[0-9]{2}$|^[A-Z]{2}[0-9]{12}$"; //String regEx = "^[A-Z]{2}-?[0-9]{2}-?[0-9]{8}-?[0-9]{2}$|^[A-Z]{2}[0-9]{12}$"; // String regex = "^[A-Z]{0,2}[0-9]{8}[A-Z]?$"; if (nss.matches(regex)) { System.out.println("ESTOY POR AQUÍ"); nss = nss.replaceAll("-", ""); String a = nss.substring(0, 2); String b = nss.substring(2, 4); String c = nss.substring(4, 12); // String num4 = nss.substring(12, 14); String d = nss.substring(12, 14); long num4Calc; if (Integer.parseInt(c) < 10000000) { num4Calc = Long.parseLong(c) + Long.parseLong(b) * 10000000; } else { System.out.println(b); System.out.println(c); num4Calc = Long.parseLong(b) + Long.parseLong(c); System.out.println(num4Calc); } long validacion = num4Calc % 97; String strnum4 = String.valueOf(validacion); return strnum4.equals(d); } return false; } ----------------------------------------------------------------------------------------- public static void main(String[] args) { System.out.println(EXAMEN.isValidNSS("XX450900000074")); //devuelve false System.out.println(EXAMEN.isValidNSS("XX-45-09000000-74")); //devuelve true } }
Editor is loading...