Advertisement
robeeeert

ValidarCuiEnArchivo

May 25th, 2023
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.86 KB | None | 0 0
  1. import java.util.*;
  2. import java.io.*;
  3. public class ValidarCui {
  4.  
  5.     public static void main(String[] args) {
  6.         String cui;
  7.         Scanner entrada = new Scanner(System.in);
  8.         do {
  9.             System.out.println("Ingrese el número de CUI");
  10.             cui = entrada.nextLine();
  11.         } while (!validarCui(cui));
  12.  
  13.         System.out.println("Número de CUI ingresado correctamente");
  14.     }
  15.     //Funcion para validar el tamaño del cui y que todos sean numeros
  16.     public static boolean validarCui(String cui) {
  17.         int contadorDigitos = 0;
  18.         boolean cuiValido = false;
  19.         String ultimosCuatroDigitos;
  20.         //Validamos que el CUI tenga 13 caracteres para que sea correcto
  21.         if (cui.length() == 13) {
  22.             for (int i = 0; i < cui.length(); i++) {
  23.                 //Validamos que el primer caracter no sea cero
  24.                 if (i == 0) {
  25.                     switch (cui.charAt(i)) {
  26.                         case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
  27.                             contadorDigitos++;//Si son todos numeros 1-9 se aumenta el contador
  28.                             break;
  29.                     }
  30.                 }
  31.                 //Validamos que los digitos de las posiciones 1-12 sean todos digitos
  32.                 switch (i) {
  33.                     case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12:
  34.                         switch (cui.charAt(i)) {
  35.                             case '0':case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
  36.                                 contadorDigitos++;//Si son todos digitos 0-9 se aumenta el contador
  37.                                 break;
  38.                         }
  39.                 }
  40.             }
  41.         }
  42.         //Creamos un sub string de los ultimos 4 digitos iniciando en la posicion 9 a la posicion 12
  43.         ultimosCuatroDigitos = cui.substring(9);
  44.         if (contadorDigitos == cui.length()) {//Validamos que el tamaño del contador sea igual que el cui
  45.             if (!buscarEnArchivo(ultimosCuatroDigitos)) {//Se llama la funcion buscarEnArchivo para validar que los ultimos cuatro digitos se encuentren en el archivo
  46.                 cuiValido = false; //Se cambia a false cuando los ultimos 4 digitos no existen en el archivo
  47.             } else {
  48.                 cuiValido = true;//Si encuentra los cuatro digitos se cabia a true
  49.             }
  50.         }
  51.  
  52.         return cuiValido;
  53.     }
  54.     //Funcion para validar que los ultimos cuatro digitos existan en el archivo
  55.     public static boolean buscarEnArchivo(String ultimosCuatroDigitos) {
  56.         //String archivo = "DepartamentosMunicipios.txt";//Variable con el nombre del archivo donde se encuentran los codigos
  57.         boolean codigoEncontrado = false;
  58.         //Abrimos el archivo para lectura
  59.         try {
  60.             BufferedReader br = new BufferedReader(new FileReader("DepartamentosMunicipios.txt"));
  61.             String linea;
  62.             //Leemos cada linea del archivo para comprobar que los ultimos 4 caracteres del cui existan en el archivo
  63.             while ((linea = br.readLine()) != null) {
  64.                 if (linea.length() >= 4) {//Verifica si la linea tiene por lo menos 4 caracteres y a partir de esto se crea el siguiente substring
  65.                     String codigo = linea.substring(0, 4);//Crea un sub string con los 4 primeros caracteres de la linea
  66.                     if (codigo.equals(ultimosCuatroDigitos)) {//compara si los 4 caracteres de la linea son iguales a los ultimos 4 caracteres del CUI
  67.                         codigoEncontrado = true;
  68.                         break;
  69.                     }
  70.                 }
  71.             }
  72.         } catch (IOException e) {
  73.             System.out.println("No se encontro el archivo");
  74.            
  75.         }
  76.  
  77.         return codigoEncontrado;
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement