Controllo validità targa

This commit is contained in:
La Programmatrice Verde 2025-09-25 17:41:05 +02:00
parent 6632a5535a
commit e3156bbc5b

View File

@ -5,6 +5,8 @@
package eserciziogarage;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
@ -27,22 +29,34 @@ public class Garage {
}
private int NextPosizioneLibera(int p_i) {
for (; p_i < this.veicoli.length && this.veicoli[p_i] != null; ++p_i);
for (; p_i < this.veicoli.length && this.veicoli[p_i] != null; ++p_i)
;
return p_i;
}
private boolean ControlloRegEx(String p_stringa, String p_regex) {
Pattern pattern = Pattern.compile(p_regex);
Matcher matcher = pattern.matcher(p_stringa);
return matcher.find();
}
public String IngressoAuto() {
Scanner sc = new Scanner(System.in);
String targa, ritorno;
final String regexTarga = "[a-zA-Z]{2}[0-9]{3}[a-zA-Z]{2}";
do {
System.out.println("Inserire la targa dell'auto: ");
targa = sc.nextLine();
if (!ControlloRegEx(targa, regexTarga)) {
System.out.println("Errore: targa non valida. Riprovare.");
}
} while (!ControlloRegEx(targa, regexTarga));
try{
try {
veicoli[this.NextPosizioneLibera()] = new Auto(targa);
ritorno = "L'auto è posteggiata nella posizione %d".formatted(posizioneLibera++);
}
catch(ArrayIndexOutOfBoundsException e){
} catch (ArrayIndexOutOfBoundsException e) {
ritorno = "Errore: il garage è pieno.";
}
@ -57,5 +71,6 @@ public class Garage {
return "I posti liberi sono da %d a %d".formatted(--posizioneLibera, veicoli.length);
}
public void UscitaAuto(){}
public void UscitaAuto() {
}
}