From 9737e29cf62e3a07dc3aa8679d4a24f8b7f9c85f Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 4 Nov 2025 20:34:50 +0100 Subject: [PATCH] Primo caso cognome --- src/appComune/GestisciCodiceFiscale.java | 54 ++++++++++++++++++++---- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/src/appComune/GestisciCodiceFiscale.java b/src/appComune/GestisciCodiceFiscale.java index b6ae1dc..bd198de 100644 --- a/src/appComune/GestisciCodiceFiscale.java +++ b/src/appComune/GestisciCodiceFiscale.java @@ -21,43 +21,79 @@ public class GestisciCodiceFiscale { } - static String CalcolaPrimaTerna(String cognome){ + static String CalcolaPrimaTerna(String cognome) { + boolean exit = false; + String ritorno; for (String carattere : CARATTERI_DA_RIMUOVERE) { cognome = GestisciStringhe.rimuoviCarattere(cognome, carattere); } cognome = cognome.toLowerCase(); + char[] caratteriCognome = cognome.toCharArray(); + int[] posizioniConsonanti = new int[4]; + for (int j = 0; j < posizioniConsonanti.length; j++) { + for (int i = posizioniConsonanti[j]; i < caratteriCognome.length && !exit; i++) { + if (GestisciStringhe.isConsonante(caratteriCognome[i])) { + exit = true; + posizioniConsonanti[j+1] = i; + } + } + } + + /*for (int i = 0; i < caratteriCognome.length && !exit; i++) { + if (GestisciStringhe.isConsonante(caratteriCognome[i])) { + exit = true; + posizioniConsonanti[0] = i; + } + } + + for (int i = posizioniConsonanti[0]; i < caratteriCognome.length && !exit; i++) { + if (GestisciStringhe.isConsonante(caratteriCognome[i])) { + exit = true; + posizioniConsonanti[1] = i; + } + } + + for (int i = posizioniConsonanti[1]; i < caratteriCognome.length && !exit; i++) { + if (GestisciStringhe.isConsonante(caratteriCognome[i])) { + exit = true; + posizioniConsonanti[2] = i; + } + } */ + + ritorno = Character.toString(caratteriCognome[posizioniConsonanti[1]]) + Character.toString(caratteriCognome[posizioniConsonanti[2]]) + Character.toString(caratteriCognome[posizioniConsonanti[3]]); + + return ritorno; } static String CalcolaSecondaTerna(String nome) { -for (String carattere : CARATTERI_DA_RIMUOVERE) { + for (String carattere : CARATTERI_DA_RIMUOVERE) { nome = GestisciStringhe.rimuoviCarattere(nome, carattere); } nome = nome.toLowerCase(); - } - + static String CalcolaSettimoOttavo(Date dataNascita) { } - + static String CalcolaNono(Date dataNascita) { } - + static String CalcolaDecimoUndicesimo(Date dataNascita, String sesso) { } - + static String CalcolaFrom12To15(String luogoNascita) { } - + static String CalcolaSedicesimo() { - + } } \ No newline at end of file