2010-08-31 3 views

risposta

2

risposte precedenti per scontato che si desidera leggere le linee da un file, presumo che si desidera un modo per rompere per-loop dalla domanda. Ecco solution Si può fare in questo modo:

breakable { 
    for (...) { 
    if (...) break 
    } 
} 
9

Scala Source classe è pigro. È possibile leggere caratteri o righe utilizzando takeWhile o dropWhile e l'iterazione sull'input non deve andare oltre il necessario.

6

Per espandere la risposta di Randall. Ad esempio, se la chiave è nella prima colonna:

val src = Source.fromFile("/etc/passwd") 
val iter = src.getLines().map(_.split(":")) 
// print the uid for Guest 
iter.find(_(0) == "Guest") foreach (a => println(a(2))) 
// the rest of iter is not processed 
src.close() 
+0

Guarda eccezioni sulle linee vuote! –

+0

Un buon esempio per me, ma solleva un'altra domanda: come faccio a saltare la prima riga, che è un'intestazione di tabella? – Ivan

+1

'val iter = src.getLines(). Drop (1) .map (_. Split (": "))' – huynhjl