diff --git a/src/mybank/MyBank.java b/src/mybank/MyBank.java index 60ffcd1..bf47a65 100644 --- a/src/mybank/MyBank.java +++ b/src/mybank/MyBank.java @@ -10,6 +10,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.InputMismatchException; import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @@ -50,25 +52,28 @@ public class MyBank { pausa(); break; case 2: - if(conti.isEmpty()){ - System.out.println("Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."); - }else{ + if (conti.isEmpty()) { + System.out.println( + "Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."); + } else { } pausa(); break; case 3: - if(conti.isEmpty()){ - System.out.println("Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."); - }else{ + if (conti.isEmpty()) { + System.out.println( + "Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."); + } else { } pausa(); break; case 4: - if(conti.isEmpty()){ - System.out.println("Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."); - }else{ + if (conti.isEmpty()) { + System.out.println( + "Errore: è necessario aggiungere almeno un conto corrente prima di proseguire."); + } else { } pausa(); @@ -103,8 +108,7 @@ public class MyBank { System.out.print("Inserire il proprio cognome: "); cognome = sc.nextLine().trim(); - // TODO: codiceFiscale da prendere da vecchio programma - codiceFiscale = "XDKEKW"; + codiceFiscale = codiceFiscale(); dataDiNascita = dataDiNascita(); @@ -112,7 +116,27 @@ public class MyBank { conti.add(new ContoCorrente(nome, cognome, codiceFiscale, dataDiNascita, saldoIniziale)); } - + + static String codiceFiscale() { + String codiceFiscale; + boolean error; + Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]"); + Matcher matcher; + + do { + error = false; + System.out.print("Inserire la propria data di nascita: "); + codiceFiscale = sc.nextLine().trim().toUpperCase(); + matcher = pattern.matcher(codiceFiscale); + if (!matcher.find()) { + System.out.println(ERRORE_GENERICO); + pausa(); + error = true; + } + } while (error); + return codiceFiscale; + } + static Date dataDiNascita() { Date dataDiNascita = null; boolean error;