Originariamente inviato da ascatem2
nel mio esempio al stringa da cercare è
codice:
Stringa da cercare:
a?ac*
si, io mi riferivo al codice che avevi postato in precedenza (quello che faceva uso dei charAt), e ti mostravo un possibile scenario in cui il risultato non era quello che ti saresti aspettato.
Grazie ad Andrea1979 che ci ha fornito il pattern corretto da utilizzare (io non mi sarei mai ricordato senza andare a riguardare la documentazione..) puoi risolvere tutto quanto semplicemente cosi':
codice:
String stringaUtente = "a?ac*"; //la stringa definita dall'utente
stringaUtente = stringaUtente.replaceAll("?", "(.){1}");
stringaUtente = stringaUtente.replace('*', '.');
Pattern p = Pattern.compile(stringaUtente);
String[] strings = {"abaco", "abano", "abate", "acacia", "babaco"};
for (int i = 0; i < strings.length; i++) {
System.out.println(strings[i] + " è riconosciuta come stringa valida? :" +
p.matches(p.pattern(), strings[i]));
}