diff --git a/src/appComune/GestisciCodiceFiscale.java b/src/appComune/GestisciCodiceFiscale.java index e722ced..88b4c76 100644 --- a/src/appComune/GestisciCodiceFiscale.java +++ b/src/appComune/GestisciCodiceFiscale.java @@ -45,16 +45,36 @@ public class GestisciCodiceFiscale { if (posizioniConsonanti[3] == 0) { // non è stata trovata la terza consonante, AKA l'array nell'ultima posizione // ha valore di default char primaVocale = 0; + int posizionePrimaVocale = 0; for (int i = 0; i < caratteriCognome.length && !exit; i++) { if (GestisciStringhe.isVocale(caratteriCognome[i])) { exit = true; primaVocale = caratteriCognome[i]; + posizionePrimaVocale = i; } } - ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) - + Character.toString(caratteriCognome[posizioniConsonanti[2]]) - + Character.toString(primaVocale); + if (posizioniConsonanti[2] == 0) { // non è stata trovata la seconda consonante, AKA l'array nella penultima + // posizione + // ha valore di default + + char secondaVocale = 0; + + for (int i = posizionePrimaVocale; i < caratteriCognome.length && !exit; i++) { + if (GestisciStringhe.isVocale(caratteriCognome[i])) { + exit = true; + secondaVocale = caratteriCognome[i]; + } + } + + ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) + + Character.toString(primaVocale) + + Character.toString(secondaVocale); + } else { + ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) + + Character.toString(caratteriCognome[posizioniConsonanti[2]]) + + Character.toString(primaVocale); + } } else { ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) + Character.toString(caratteriCognome[posizioniConsonanti[2]])