Secondo caso nome

This commit is contained in:
La Programmatrice Verde 2025-11-04 21:50:31 +01:00
parent b406b8ff75
commit 20997136dc

View File

@ -105,7 +105,8 @@ public class GestisciCodiceFiscale {
Arrays.fill(posizioniConsonanti, -1); Arrays.fill(posizioniConsonanti, -1);
for (int j = 0; j < posizioniConsonanti.length; j++) { for (int j = 0; j < posizioniConsonanti.length; j++) {
for (int i = (posizioniConsonanti[j] == -1 ? 0 : posizioniConsonanti[j]); i < caratteriCognome.length && !exit; i++) { for (int i = (posizioniConsonanti[j] == -1 ? 0 : posizioniConsonanti[j]); i < caratteriCognome.length
&& !exit; i++) {
if (GestisciStringhe.isConsonante(caratteriCognome[i])) { if (GestisciStringhe.isConsonante(caratteriCognome[i])) {
exit = true; exit = true;
posizioniConsonanti[j + 1] = i; posizioniConsonanti[j + 1] = i;
@ -175,10 +176,20 @@ public class GestisciCodiceFiscale {
int[] posizioniConsonanti = trovaConsonanti(nome); int[] posizioniConsonanti = trovaConsonanti(nome);
if (posizioniConsonanti[3] == -1) { if (posizioniConsonanti[3] == -1) {
if (posizioniConsonanti[2] == -1) {
/*
* O grandi divinità del codice, fate in modo che ogni nome abbia almeno una vocale
*/
char primaVocale = trovaPrimaVocale(caratteriNome)[0];
ritorno = Character.toString(caratteriNome[posizioniConsonanti[0]])
+ Character.toString(caratteriNome[posizioniConsonanti[1]])
+ Character.toString(primaVocale);
} else {
ritorno = Character.toString(caratteriNome[posizioniConsonanti[0]]) ritorno = Character.toString(caratteriNome[posizioniConsonanti[0]])
+ Character.toString(caratteriNome[posizioniConsonanti[1]]) + Character.toString(caratteriNome[posizioniConsonanti[1]])
+ Character.toString(caratteriNome[posizioniConsonanti[2]]); + Character.toString(caratteriNome[posizioniConsonanti[2]]);
} }
}
return ritorno; return ritorno;
} }