Files and Text Processing
Splitting Lines
Break a block of text into separate lines.
split-lines
Splitting on the newline character turns one string into a list of lines. Each line can then be read by its position.
Splitting Lines
SplitLines.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val pick = 0
val text = "alpha\nbeta\ngamma"
val lines = text.split("\n").toList
val chosen = lines(pick)
println("lineCount=" + lines.length)
println("chosen=" + chosen)
}
}
object Main {
def main(args: Array[String]): Unit = {
val pick = 1
val text = "alpha\nbeta\ngamma"
val lines = text.split("\n").toList
val chosen = lines(pick)
println("lineCount=" + lines.length)
println("chosen=" + chosen)
}
}
object Main {
def main(args: Array[String]): Unit = {
val pick = 2
val text = "alpha\nbeta\ngamma"
val lines = text.split("\n").toList
val chosen = lines(pick)
println("lineCount=" + lines.length)
println("chosen=" + chosen)
}
}
pick ← 0, text ← alpha beta gamma, lines ← List(alpha, beta, gamma)
1object Main {2 def main(args: Array[String]): Unit = {3 val pick→ 0 = 0 //@pick=1, 24 val text→ alpha beta gamma = "alpha\nbeta\ngamma"5 val lines→ List(alpha, beta, gamma) = textalpha beta gamma.split("\n").toList6 val chosen→ alpha = lines(pick)alpha78 println("lineCount=" + lines.length3)9 println("chosen=" + chosenalpha)10 }11}outputlineCount=3 chosen=alpha
pick ← 1, text ← alpha beta gamma, lines ← List(alpha, beta, gamma)
1object Main {2 def main(args: Array[String]): Unit = {3 val pick→ 1 = 14 val text→ alpha beta gamma = "alpha\nbeta\ngamma"5 val lines→ List(alpha, beta, gamma) = textalpha beta gamma.split("\n").toList6 val chosen→ beta = lines(pick)beta78 println("lineCount=" + lines.length3)9 println("chosen=" + chosenbeta)10 }11}outputlineCount=3 chosen=beta
pick ← 2, text ← alpha beta gamma, lines ← List(alpha, beta, gamma)
1object Main {2 def main(args: Array[String]): Unit = {3 val pick→ 2 = 24 val text→ alpha beta gamma = "alpha\nbeta\ngamma"5 val lines→ List(alpha, beta, gamma) = textalpha beta gamma.split("\n").toList6 val chosen→ gamma = lines(pick)gamma78 println("lineCount=" + lines.length3)9 println("chosen=" + chosengamma)10 }11}outputlineCount=3 chosen=gamma