【问题标题】:Convert string representation of list to list in Scala将列表的字符串表示形式转换为Scala中的列表
【发布时间】:2017-01-30 09:29:55
【问题描述】:

如果我有列表s = '["a", "b", "c"]' 的字符串表示,我如何解析这个字符串以提取列表对象?预期输出l = ["a", "b", "c"]

【问题讨论】:

    标签: string list scala idioms


    【解决方案1】:
    val str = """["a","b" "c"]"""    // string with quote marks
    val getStrs = "\"([^, ]+)\"".r   // regex to isolate quoted strings
    

    现在将那些带引号的字符串(不带引号)拉入List[String]

    val lst = (for (m <- getStrs findAllMatchIn str) yield m group 1).toList
    // lst: List[String] = List(a, b, c)
    

    【讨论】:

    • 谢谢!是否可以解析json列表?例如,str="""[{"index": 1}, {"index": 2}]""" 并期望 lst 为 [{"index": 1}, {"index": 2}] ?
    • 要使用 JSON,您可能应该使用 JSON 工具。你可以start here
    • 哦,对不起,我不是这个意思。我的意思是如果列表是 JSON 列表,那么分隔符会有点不同,因为 JSON 字符串中也会有逗号。我不确定是否可以通过使用正则表达式来解析上面注释的示例列表。任何帮助是极大的赞赏! @jwvh
    • 我在这里看到了三个问题。 1) 很难确切地知道你在追求什么,因为规定的预期输出在 Scala 中没有意义。 2) JSON 元素可能很复杂(嵌套元素等)。您的示例输入是唯一要解析的 JSON 元素类型吗? 3)这是一个不同的问题,值得一个新的/不同的帖子。这样,您可能会得到更多的关注和更好的回应。
    • 其实我刚刚解决了。这很简单。 JSON 列表实际上是一个有效的 JSON,所以我可以使用内置库。但是还是谢谢!!
    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 2017-10-04
    • 2021-04-13
    相关资源
    最近更新 更多