-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathValidaciones.java
More file actions
116 lines (99 loc) · 5.53 KB
/
Validaciones.java
File metadata and controls
116 lines (99 loc) · 5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import java.util.*;
public class Validaciones
{
//Funcion de las primeras 4 letras
public static String acronimoNombre(Persona pers )
{
String acronimo = new String();
//Verifica si los apellidos contienen Ch o Ll. Ej Chavez o Llano
if(nombreCompuesto(pers.lastName_p.toUpperCase())==true)
acronimo = pers.lastName_p.substring(0,1) + pers.lastName_p.substring(2,3) + pers.lastName_m.substring(0,1) + pers.name.substring(0, 1);
//Verifica cuantas letras tiene el apellido
else if(letrasApellidos(pers.lastName_p) == true || letrasApellidos(pers.lastName_m) == true)
{
if(unApellido(pers.lastName_p.toUpperCase()) == false) //El apellido es de 2 letras o menos
acronimo = pers.lastName_p.substring(0,1) + pers.lastName_m.substring(0,1) + pers.name.substring(0, 2);
if(unApellido(pers.lastName_p.toUpperCase()) == true) acronimo = pers.lastName_m.substring(0,2)+pers.name.substring(0,2); //No cuenta con apellido paterno.
else acronimo = pers.lastName_p.substring(0,2)+pers.name.substring(0,2); //No cuenta con apellido matrno
}
//Verifica si contiene el nombre de Maria o Jose
else if(nombreGenericos(pers.name.toUpperCase()) == 0 )
{
if(pers.name.contains("maria") == true) acronimo = pers.lastName_p.substring(0,2) + pers.lastName_m.substring(0,1) + pers.name.substring(6,7);
else acronimo = pers.lastName_p.substring(0,2) + pers.lastName_m.substring(0,1) + pers.name.substring(5,6);
}
else if(preposiciones(pers.lastName_p.toUpperCase()) != 0 || preposiciones(pers.lastName_m.toUpperCase()) != 0 || preposiciones(pers.name.toUpperCase()) != 0 )
{
if(preposiciones(pers.lastName_p.toUpperCase()) != 0) acronimo = pers.lastName_p.substring( preposiciones( pers.lastName_p.toUpperCase()), preposiciones(pers.lastName_p.toUpperCase())+2 ) + pers.lastName_m.substring(0,1) + pers.name.substring(0, 1);
else if (preposiciones(pers.lastName_m.toUpperCase()) != 0) acronimo = pers.lastName_p.substring(0,2) + pers.lastName_m.substring(preposiciones(pers.lastName_m.toUpperCase()),preposiciones(pers.lastName_m.toUpperCase())+2) + pers.name.substring(0, 1);
else acronimo = pers.lastName_p.substring(0,2) + pers.lastName_m.substring(0,1) + pers.name.substring(preposiciones(pers.name.toUpperCase()), preposiciones(pers.name.toUpperCase())+1 );
}
//Si ninguna de las anteriores se cumple /
else acronimo = pers.lastName_p.substring(0,2) + pers.lastName_m.substring(0,1) + pers.name.substring(0, 1);
if(palabraInapropiada(acronimo.toUpperCase()) == 0)
acronimo = acronimo.substring(0,3) + "X" ;
return (acronimo.toUpperCase());
}// fin de la funcion regla1
//Funcion que determina las letras del 5 al 8 (fecha de nacimiento)
public static String acronimoFecha(Persona pers)
{
String fecha = new String();
fecha = pers.dob.substring(8,10) + pers.dob.substring(3,5) + pers.dob.substring(0,2);
return fecha;
} //fin metodo acronimoFecha
//Funcion que compara si los nombres son compuestos. Ej. CH y LL
public static boolean nombreCompuesto (String lastN)
{
String letras[] = {"CH", "LL"};
String compuesta = lastN.substring(0,2);
if((compuesta.compareTo(letras[0])==0) || (compuesta.compareTo(letras[1])==0)) return true;
else return false;
} //fin metodo nombreCompuesto
public static boolean letrasApellidos(String lastN)
{
//String acronimo = new String();
if(lastN.length() <= 2) return true;
else return false;
} //fin metodo letrasApellidos
//Metodo que busca nombres genericos Maria y Jose
public static int nombreGenericos(String nombre)
{
int x = -1;
if(nombre.contains("JOSE") == true ) x = nombre.indexOf("JOSE");
if(nombre.contains("MARIA") == true) x = nombre.indexOf("MARIA");
//si lo encuentra en la posicion 0, entonces se le suma 4 o 5 dependiendo si es Maria o Jose
return x;
}// fin de meotodo
public static boolean unApellido(String lastN)
{
return lastN.contains("XX");
} //fin metodo
public static int preposiciones(String lastN)
{
int i = 0;
String prepos[] = {"DE LA", "DEL", "MA.", "Y", "DE LOS"};
while(i < prepos.length)
{
if(lastN.contains(prepos[i]) == true)
return prepos[i].length()+1;
i++;
}return 0;
} //fin metodo
public static int palabraInapropiada(String acronimo)
{
int answer = -1;
int i = 0;
String palabra_inconv[] = {"BUEI","BUEY","CACA","CACO","CAGA","CAGO","CAKA","CAKO",
"COGE","COJA","COLA","COJE","COJI","COJO","CULO","FETO","GUEY","JOTO","KACA","KACO",
"KAGA","KAGO","KOGE","KOJO","KAKA","KULO","MAME","MAMO","MEAR","MEAS","MEON","MION",
"MOCO", "MULA","PEDA","PEDO","PENE","PUTA","PUTO","QULO","RATA","RUIN"};
while(i<palabra_inconv.length)
{
answer = acronimo.compareTo(palabra_inconv[i]);
if(answer == 0) break;
i++;
}
//String nuevoAcron = palabra_inconv[answer];
return answer; //Devuelve 0 si no coincide con una palabra inconveniente
}//fin metodo
}// fin de la clase