diff --git a/src/appComune/GestisciCodiceFiscale.java b/src/appComune/GestisciCodiceFiscale.java index 145d70c..cc1f4da 100644 --- a/src/appComune/GestisciCodiceFiscale.java +++ b/src/appComune/GestisciCodiceFiscale.java @@ -42,8 +42,7 @@ public class GestisciCodiceFiscale { } } - if (posizioniConsonanti[3] == 0) { // non è stata trovata la terza consonante, AKA l'array nell'ultima posizione - // ha valore di default + if (posizioniConsonanti[1] == 0) { // non è stata trovata la prima consonante, ovvero non ce ne sono char primaVocale = 0; int posizionePrimaVocale = 0; @@ -54,37 +53,67 @@ public class GestisciCodiceFiscale { posizionePrimaVocale = i; } } - if (posizioniConsonanti[2] == 0) { // non è stata trovata la seconda consonante, AKA l'array nella penultima + + 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(primaVocale) + + Character.toString(secondaVocale) + + Character.toString('x'); + + } else { + 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; - char secondaVocale = 0; - - for (int i = posizionePrimaVocale; i < caratteriCognome.length && !exit; i++) { + for (int i = 0; i < caratteriCognome.length && !exit; i++) { if (GestisciStringhe.isVocale(caratteriCognome[i])) { exit = true; - secondaVocale = caratteriCognome[i]; + primaVocale = caratteriCognome[i]; + posizionePrimaVocale = i; } } + if (posizioniConsonanti[2] == 0) { // non è stata trovata la seconda consonante, AKA l'array nella + // penultima + // posizione + // ha valore di default - if (!exit) { - ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) - + Character.toString(primaVocale) - + Character.toString('x'); + char secondaVocale = 0; + + for (int i = posizionePrimaVocale; i < caratteriCognome.length && !exit; i++) { + if (GestisciStringhe.isVocale(caratteriCognome[i])) { + exit = true; + secondaVocale = caratteriCognome[i]; + } + } + + if (!exit) { + ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) + + Character.toString(primaVocale) + + Character.toString('x'); + } else { + ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) + + Character.toString(primaVocale) + + Character.toString(secondaVocale); + } } else { ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) - + Character.toString(primaVocale) - + Character.toString(secondaVocale); + + Character.toString(caratteriCognome[posizioniConsonanti[2]]) + + Character.toString(primaVocale); } } else { ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) + Character.toString(caratteriCognome[posizioniConsonanti[2]]) - + Character.toString(primaVocale); + + Character.toString(caratteriCognome[posizioniConsonanti[3]]); } - } else { - ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) - + Character.toString(caratteriCognome[posizioniConsonanti[2]]) - + Character.toString(caratteriCognome[posizioniConsonanti[3]]); } /*