Controllo validità targa
This commit is contained in:
parent
6632a5535a
commit
e3156bbc5b
@ -5,6 +5,8 @@
|
|||||||
package eserciziogarage;
|
package eserciziogarage;
|
||||||
|
|
||||||
import java.util.Scanner;
|
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) {
|
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;
|
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() {
|
public String IngressoAuto() {
|
||||||
Scanner sc = new Scanner(System.in);
|
Scanner sc = new Scanner(System.in);
|
||||||
String targa, ritorno;
|
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: ");
|
System.out.println("Inserire la targa dell'auto: ");
|
||||||
targa = sc.nextLine();
|
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);
|
veicoli[this.NextPosizioneLibera()] = new Auto(targa);
|
||||||
ritorno = "L'auto è posteggiata nella posizione %d".formatted(posizioneLibera++);
|
ritorno = "L'auto è posteggiata nella posizione %d".formatted(posizioneLibera++);
|
||||||
}
|
} catch (ArrayIndexOutOfBoundsException e) {
|
||||||
catch(ArrayIndexOutOfBoundsException e){
|
|
||||||
ritorno = "Errore: il garage è pieno.";
|
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);
|
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