Controllo validità targa
This commit is contained in:
parent
6632a5535a
commit
e3156bbc5b
@ -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 {
|
||||
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() {
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user