【问题标题】:How to convert list with full name to a tuple of (name,surname) using map如何使用地图将全名列表转换为(姓名,姓氏)的元组
【发布时间】:2021-07-15 10:41:08
【问题描述】:

我在将 List(Name Surname, Name Surname, ....) 列表转换为 List((name, surname), (name,surname)) 时遇到问题。 我尝试使用 mapcase 但它说找不到值“+”

val lines = io.Source.fromResource("nazwiska.txt").getLines.toList
    println(lines)
    val linesMapped = lines.map{case x+" "+y => (x,y) }

【问题讨论】:

    标签: scala functional-programming


    【解决方案1】:

    你快到了,但尝试使用插值字符串模式

    lines.map { case s"$firstname $surname" => (firstname, surname) }
    

    还可以考虑切换到collect 以过滤掉格式错误的名称,否则上面的映射会爆炸

    lines.collect { case s"$firstname $surname" => (firstname, surname) }
    

    【讨论】:

    • 请注意,对于有多个名字和姓氏的人来说,它会失败,至少在拉丁美洲很常见,比如我的 :p 所以你可能想使用 Regex 代替 -但是,对于一个简单的学术练习来说,这可能是矫枉过正。
    • 幸运的是,在我的文件中只有“简单”的名字,无论如何谢谢你:)
    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多