gpt4 book ai didi

java - 从文件中读取存储为字符串的 map 对象

转载 作者:行者123 更新时间:2023-12-01 19:31:34 24 4
gpt4 key购买 nike

我保存了 map ,但没有对文件进行任何预处理。所以我有一个文件,其中我的 map 对象为:

Map(abcd -> List(1,2,3), efgh -> List(78,46))

所以当我读取它时,它被读取为字符串。

如何将其转换为 map 对象?

最佳答案

正如其他人所评论的,将 map 数据存储为字符串是低效的。无论如何,假设预先知道 Map 元素类型(在本例中为 Map[String, List[Int]] ),您可以使用正则表达式模式来配对所有 string -> List(...) 。 ,然后拆分并转换 List内容转为整数:

import scala.util.{Try, Success, Failure}

val s = "Map(abcd -> List(1,2,3), efgh -> List(78,46))"

val pattern = """(\w+)\s*->\s*List\(([^\)]*)\)""".r

pattern.findAllMatchIn(s).flatMap(_.subgroups).grouped(2).
collect{ case Seq(k, v) =>
val ls = v.split("""\s*,\s*""").map(x => Try(x.toInt) match {
case Success(i) => i
case Failure(_) => Int.MinValue // Or any other default integer
})
(k, ls.toList)
}.
toMap
// res1: Map[String, List[Int]] = Map("abcd" -> List(1, 2, 3), "efgh" -> List(78, 46))

关于java - 从文件中读取存储为字符串的 map 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59256517/

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