gpt4 book ai didi

scala - 将文件读入 map

转载 作者:行者123 更新时间:2023-12-02 09:19:04 25 4
gpt4 key购买 nike

我有一个名为“mappings.txt”的文件,格式为:

k->v

要将此文件读入 map ,我使用:

val file = Source.fromFile("mappings.txt").getLines.filter(f => !f.trim.isEmpty)
val map = file.map(m2 => (m2.split("->")(0), m2.split("->")(1))).toMap

如何将文件读入值出现在多行的 map 中?但是一些映射值超过多行:例如:

k -> v \n 
test
\n here
k2 -> v2

最佳答案

鉴于可供使用的测试数据非常有限,这似乎对我有用。

val myMap = io.Source
.fromFile("junk.txt") // open the file
.mkString // turn it into one long String
.split("(?=\\n\\S+\\s*->)") // a non-consuming split
.map(_.trim.split("\\s*->\\s*")) // split each element at "->"
.map(arr => (arr(0)->arr(1))) // from 2-element Array to tuple
.toMap // from tuple to k->v pair

结果:

scala> myMap("k")
res0: String =
v \n
test
\n here

scala> myMap("k2")
res1: String = v2

关于scala - 将文件读入 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44211677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com