Files and Text Processing
Parsing Key-Value Text
Turn key=value lines into a lookup map.
Parsing Key-Value Text
KeyValue.scala
object Main {
def main(args: Array[String]): Unit = {
val lookup =
val text = "host=local\nport=8080\nuser=ann"
val lines = text.split("\n").toList
var config = Map[String, String]()
for (line <- lines) {
val eq = line.indexOf("=")
val k = line.substring(0, eq)
val v = line.substring(eq + 1)
config = config + (k -> v)
}
val value = config.getOrElse(lookup, "?")
println("size=" + config.size)
println("value=" + value)
}
}
object Main {
def main(args: Array[String]): Unit = {
val lookup =
val text = "host=local\nport=8080\nuser=ann"
val lines = text.split("\n").toList
var config = Map[String, String]()
for (line <- lines) {
val eq = line.indexOf("=")
val k = line.substring(0, eq)
val v = line.substring(eq + 1)
config = config + (k -> v)
}
val value = config.getOrElse(lookup, "?")
println("size=" + config.size)
println("value=" + value)
}
}
object Main {
def main(args: Array[String]): Unit = {
val lookup =
val text = "host=local\nport=8080\nuser=ann"
val lines = text.split("\n").toList
var config = Map[String, String]()
for (line <- lines) {
val eq = line.indexOf("=")
val k = line.substring(0, eq)
val v = line.substring(eq + 1)
config = config + (k -> v)
}
val value = config.getOrElse(lookup, "?")
println("size=" + config.size)
println("value=" + value)
}
}
key-value
Each `key=value` line is split at the first `=` and stored in a map. Later code looks up a value by its key with a safe default.