Generalmente, come trovare il primo elemento che soddisfa determinate condizioni in un Seq
?Trova il primo elemento che soddisfa la condizione X in un Seq
Ad esempio, ho un elenco di possibili formati di data, e voglio trovare il risultato analizzato del primo formato in grado di analizzare la mia stringa di data.
val str = "1903 January"
val formats = List("MMM yyyy", "yyyy MMM", "MM yyyy", "MM, yyyy")
.map(new SimpleDateFormat(_))
formats.flatMap(f => {try {
Some(f.parse(str))
}catch {
case e: Throwable => None
}}).head
Non male. Ma 1. è un po 'brutto. 2. ha fatto del lavoro non necessario (provato i formati "MM yyyy"
e "MM, yyyy"
). Forse c'è un modo più elegante e idiomatico? (usando Iterator
?)
Usa 'metodo find' di' Seq' – Kakaji