Controllo caratteri nomi/cognomi
This commit is contained in:
parent
6d7155f529
commit
495f9f81c7
@ -17,8 +17,6 @@ import utility.GestisciStringhe;
|
||||
*/
|
||||
public class GestisciCodiceFiscale {
|
||||
|
||||
static final String[] CARATTERI_DA_RIMUOVERE = { " ", "'", "`" };
|
||||
|
||||
public static String CalcolaCodiceFiscale(String nome, String cognome, Date dataNascita, String luogo,
|
||||
String sesso) {
|
||||
return CalcolaPrimaTerna(cognome) + CalcolaSecondaTerna(nome) + CalcolaSettimoOttavo(dataNascita)
|
||||
@ -28,7 +26,7 @@ public class GestisciCodiceFiscale {
|
||||
|
||||
static String CalcolaPrimaTerna(String cognome) {
|
||||
String ritorno;
|
||||
for (String carattere : CARATTERI_DA_RIMUOVERE) {
|
||||
for (String carattere : MainComune.CARATTERI_DA_RIMUOVERE) {
|
||||
cognome = GestisciStringhe.rimuoviCarattere(cognome, carattere);
|
||||
}
|
||||
|
||||
@ -187,7 +185,7 @@ public class GestisciCodiceFiscale {
|
||||
|
||||
static String CalcolaSecondaTerna(String nome) {
|
||||
String ritorno;
|
||||
for (String carattere : CARATTERI_DA_RIMUOVERE) {
|
||||
for (String carattere : MainComune.CARATTERI_DA_RIMUOVERE) {
|
||||
nome = GestisciStringhe.rimuoviCarattere(nome, carattere);
|
||||
}
|
||||
|
||||
|
||||
@ -19,6 +19,7 @@ public class MainComune {
|
||||
static Scanner sc = new Scanner(System.in);
|
||||
static final String PATTERN_DATA = "dd/MM/yyyy";
|
||||
static final String[] sessiAmmessi = { "m", "f" };
|
||||
static final String[] CARATTERI_DA_RIMUOVERE = { " ", "'", "`", "-" };
|
||||
|
||||
public static void main(String[] args) {
|
||||
int scelta = -1;
|
||||
@ -39,7 +40,8 @@ public class MainComune {
|
||||
case 0:
|
||||
break;
|
||||
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();
|
||||
break;
|
||||
case 2:
|
||||
@ -71,11 +73,9 @@ public class MainComune {
|
||||
String sesso;
|
||||
Anagrafica ritorno;
|
||||
|
||||
System.out.print("Inserire il nome, compresi eventuali secondi nomi: ");
|
||||
nome = sc.nextLine().trim();
|
||||
nome = nomeCognome(true);
|
||||
|
||||
System.out.print("Inserire il cognome, compresi eventuali secondi cognomi: ");
|
||||
cognome = sc.nextLine().trim();
|
||||
cognome = nomeCognome(false);
|
||||
|
||||
dataNascita = dataNascita();
|
||||
|
||||
@ -88,6 +88,36 @@ public class MainComune {
|
||||
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() {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_DATA);
|
||||
Date ritorno = null;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user