Controllo caratteri nomi/cognomi
This commit is contained in:
parent
6d7155f529
commit
495f9f81c7
@ -17,8 +17,6 @@ import utility.GestisciStringhe;
|
|||||||
*/
|
*/
|
||||||
public class GestisciCodiceFiscale {
|
public class GestisciCodiceFiscale {
|
||||||
|
|
||||||
static final String[] CARATTERI_DA_RIMUOVERE = { " ", "'", "`" };
|
|
||||||
|
|
||||||
public static String CalcolaCodiceFiscale(String nome, String cognome, Date dataNascita, String luogo,
|
public static String CalcolaCodiceFiscale(String nome, String cognome, Date dataNascita, String luogo,
|
||||||
String sesso) {
|
String sesso) {
|
||||||
return CalcolaPrimaTerna(cognome) + CalcolaSecondaTerna(nome) + CalcolaSettimoOttavo(dataNascita)
|
return CalcolaPrimaTerna(cognome) + CalcolaSecondaTerna(nome) + CalcolaSettimoOttavo(dataNascita)
|
||||||
@ -28,7 +26,7 @@ public class GestisciCodiceFiscale {
|
|||||||
|
|
||||||
static String CalcolaPrimaTerna(String cognome) {
|
static String CalcolaPrimaTerna(String cognome) {
|
||||||
String ritorno;
|
String ritorno;
|
||||||
for (String carattere : CARATTERI_DA_RIMUOVERE) {
|
for (String carattere : MainComune.CARATTERI_DA_RIMUOVERE) {
|
||||||
cognome = GestisciStringhe.rimuoviCarattere(cognome, carattere);
|
cognome = GestisciStringhe.rimuoviCarattere(cognome, carattere);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -187,7 +185,7 @@ public class GestisciCodiceFiscale {
|
|||||||
|
|
||||||
static String CalcolaSecondaTerna(String nome) {
|
static String CalcolaSecondaTerna(String nome) {
|
||||||
String ritorno;
|
String ritorno;
|
||||||
for (String carattere : CARATTERI_DA_RIMUOVERE) {
|
for (String carattere : MainComune.CARATTERI_DA_RIMUOVERE) {
|
||||||
nome = GestisciStringhe.rimuoviCarattere(nome, carattere);
|
nome = GestisciStringhe.rimuoviCarattere(nome, carattere);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,6 +19,7 @@ public class MainComune {
|
|||||||
static Scanner sc = new Scanner(System.in);
|
static Scanner sc = new Scanner(System.in);
|
||||||
static final String PATTERN_DATA = "dd/MM/yyyy";
|
static final String PATTERN_DATA = "dd/MM/yyyy";
|
||||||
static final String[] sessiAmmessi = { "m", "f" };
|
static final String[] sessiAmmessi = { "m", "f" };
|
||||||
|
static final String[] CARATTERI_DA_RIMUOVERE = { " ", "'", "`", "-" };
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
int scelta = -1;
|
int scelta = -1;
|
||||||
@ -39,7 +40,8 @@ public class MainComune {
|
|||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
System.out.println("Cittadino aggiunto con successo:\n" + aggiungiCittatino(cittadini).toString());
|
System.out.println(
|
||||||
|
"Cittadino aggiunto con successo:\n" + aggiungiCittatino(cittadini).toString());
|
||||||
pausa();
|
pausa();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@ -71,11 +73,9 @@ public class MainComune {
|
|||||||
String sesso;
|
String sesso;
|
||||||
Anagrafica ritorno;
|
Anagrafica ritorno;
|
||||||
|
|
||||||
System.out.print("Inserire il nome, compresi eventuali secondi nomi: ");
|
nome = nomeCognome(true);
|
||||||
nome = sc.nextLine().trim();
|
|
||||||
|
|
||||||
System.out.print("Inserire il cognome, compresi eventuali secondi cognomi: ");
|
cognome = nomeCognome(false);
|
||||||
cognome = sc.nextLine().trim();
|
|
||||||
|
|
||||||
dataNascita = dataNascita();
|
dataNascita = dataNascita();
|
||||||
|
|
||||||
@ -88,6 +88,36 @@ public class MainComune {
|
|||||||
return ritorno;
|
return ritorno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static String nomeCognome(boolean isNome) {
|
||||||
|
boolean error;
|
||||||
|
String ritorno;
|
||||||
|
|
||||||
|
do {
|
||||||
|
error = false;
|
||||||
|
|
||||||
|
System.out.print("Inserire il " + (isNome ? "" : "cog") + "nome, compresi eventuali secondi "
|
||||||
|
+ (isNome ? "" : "cog") + "nomi: ");
|
||||||
|
ritorno = sc.nextLine().trim();
|
||||||
|
for (int i = 0; i < ritorno.length() && !error; i++) {
|
||||||
|
error = !Character.isLetter(ritorno.charAt(i)) && !isCarattereDaRimuovere(ritorno.charAt(i));
|
||||||
|
}
|
||||||
|
if (error) {
|
||||||
|
System.out.println("Errore: sono ammesse solo lettere nel " + (isNome ? "" : "cog") + "nome.");
|
||||||
|
pausa();
|
||||||
|
}
|
||||||
|
} while (error);
|
||||||
|
|
||||||
|
return ritorno;
|
||||||
|
}
|
||||||
|
|
||||||
|
static boolean isCarattereDaRimuovere(char c) {
|
||||||
|
boolean exit = false;
|
||||||
|
for (int i = 0; i < CARATTERI_DA_RIMUOVERE.length && !exit; i++) {
|
||||||
|
exit = Character.toString(c).equals(CARATTERI_DA_RIMUOVERE[i]);
|
||||||
|
}
|
||||||
|
return exit;
|
||||||
|
}
|
||||||
|
|
||||||
static Date dataNascita() {
|
static Date dataNascita() {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATA);
|
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATA);
|
||||||
Date ritorno = null;
|
Date ritorno = null;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user