From 5e23fb7df36d946c36a5ab702e0cbe73d7a979c2 Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Tue, 4 Nov 2025 23:54:59 +0100 Subject: [PATCH] Fix trovaConsonanti --- src/appComune/GestisciCodiceFiscale.java | 26 ++++++++++------------- src/utility/GestisciStringhe.java | 27 ++++++++++++++++++------ 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/appComune/GestisciCodiceFiscale.java b/src/appComune/GestisciCodiceFiscale.java index c567b59..0861f7c 100644 --- a/src/appComune/GestisciCodiceFiscale.java +++ b/src/appComune/GestisciCodiceFiscale.java @@ -103,25 +103,22 @@ public class GestisciCodiceFiscale { static int[] trovaConsonanti(String cognome) { // trova le prime 4 consonanti boolean exit = false; char[] caratteriCognome = cognome.toCharArray(); - int[] posizioniConsonanti = new int[5]; int[] ritorno = new int[4]; - Arrays.fill(posizioniConsonanti, -1); + Arrays.fill(ritorno, -1); + int indiceEsterno = 0; - for (int j = 0; j < posizioniConsonanti.length; j++) { - for (int i = (posizioniConsonanti[j] == -1 ? 0 : posizioniConsonanti[j]); i < caratteriCognome.length - && !exit; i++) { + for (int j = 0; j < ritorno.length; j++) { + exit = false; + for (int i = indiceEsterno; i < caratteriCognome.length && !exit; i++) { if (GestisciStringhe.isConsonante(caratteriCognome[i])) { exit = true; - posizioniConsonanti[j + 1] = i; + ritorno[j] = i; + indiceEsterno = i + 1; + Arrays.fill(caratteriCognome, 0, i + 1, (char) 0); } } } - ritorno[0] = posizioniConsonanti[1]; - ritorno[1] = posizioniConsonanti[2]; - ritorno[2] = posizioniConsonanti[3]; - ritorno[3] = posizioniConsonanti[4]; - return ritorno; } @@ -247,7 +244,7 @@ public class GestisciCodiceFiscale { int mese = Integer.parseInt(sdf.format(dataNascita)); boolean exit = false; String ritorno = ""; - + for (int c = 0; c < TABELLA_CONVERSIONE_MESE[0].length && !exit; c++) { if (mese == Integer.parseInt(TABELLA_CONVERSIONE_MESE[0][c])) { ritorno = TABELLA_CONVERSIONE_MESE[1][c]; @@ -265,15 +262,14 @@ public class GestisciCodiceFiscale { String ritorno; if (sesso.equals("f")) { ritorno = Integer.toString(giorno + 40); - } - else { + } else { ritorno = Integer.toString(giorno); } return ritorno; } static String CalcolaFrom12To15(String luogoNascita) { - //API per i codici del catasto + // API per i codici del catasto String ritorno = ""; if (luogoNascita.equals("varese")) { ritorno = "L682"; diff --git a/src/utility/GestisciStringhe.java b/src/utility/GestisciStringhe.java index 235df49..60f8a9d 100644 --- a/src/utility/GestisciStringhe.java +++ b/src/utility/GestisciStringhe.java @@ -4,7 +4,6 @@ */ package utility; -import java.util.Arrays; import java.util.LinkedList; /** @@ -18,13 +17,27 @@ public class GestisciStringhe { public static int ContaOccorrenze(String testo, char tipo) { + }*/ + + public static int trovaPosizioneOccorrenza(String testo, String stringaDaCercare) { + int ritorno = -1; + char[] caratteriTesto = testo.toCharArray(); + char[] caratteriStringaDaCercare = stringaDaCercare.toCharArray(); + boolean exit = false; + + if (testo.contains(stringaDaCercare)) { + for (int i = 0; i < caratteriTesto.length && !exit; i++) { + if (caratteriTesto[i] == caratteriStringaDaCercare[0]) { + ritorno = i; + exit = true; + } + } + } + + return ritorno; } - public static int trovaPosizioneOccorrenza(String testo, String testoDaCercare) { - - } - - public static int trovaPosizioneOccorrenza(String testo, String testoDaCercare, int nrOccorrenza) { + /*public static int trovaPosizioneOccorrenza(String testo, String testoDaCercare, int nrOccorrenza) { } @@ -66,7 +79,7 @@ public class GestisciStringhe { for (int i = 0; i < testoRipulitoArray.length; i++) { testoRipulitoArrayChar[i] = (char) testoRipulitoArray[i]; } - + for (char c : testoRipulitoArrayChar) { bld.append(c); }