void menu() {
print();
Scanner input = new Scanner(System.in);
while(true) {
String s = input.next();
switch (s) {
case "m": print(); continue;
case "s": stat(); break;
case "[A-Z]{1}[a-z]{2}\\d{1,}": filminfo(s); break;
case "Jur1": filminfo(s); break; //For debugging - this worked fine
case "q": ; return;
}
}
}
Sembra che la mia regex sia disattivata o che non la sto usando correttamente nella dichiarazione del caso. Quello che voglio è una stringa che: inizi con esattamente una lettera maiuscola ed è seguita esattamente da due lettere minuscole, che sono seguite da almeno una cifra.Utilizzo di espressioni regolari per l'istruzione switch in Java
Ho controllato l'API di regex e ho provato le tre varianti (quantificatori avidi, riluttanti e possessivi) senza conoscere il loro corretto utilizzo. Controllato anche i metodi per String senza trovare un metodo che sembrava pertinente alle mie esigenze.
È qualcosa di nuovo in Java 7? passare con regex. Non esiste una cosa simile in Java 6 o meno. – gigadot
non c'è nemmeno un interruttore di stringa in 6 e in basso (solo integrali ed enumerazioni) –
Sì - sospettavo che ciò stesse infrangendo le regole dell'interruttore. Quindi oltre alle buone 'ol se/else if-statement allora? – jollyroger