【问题标题】:list of string matching with input string与输入字符串匹配的字符串列表
【发布时间】:2018-05-29 10:46:47
【问题描述】:

我正在学习 scala,但遇到以下问题: 给定输入列表

val listin = List("Apple,January,10",
"Banana,August,15",
"Strawberry,June,20")

和一个字符串val inputstring="Banana,August" 我想在与字符串匹配的列中找到价格。 我写了以下代码:

case class Fruit(name:String, month:String,price:Int)
val splitString=inputstring.split(",")
val listSplit=listin.map(_.spilt(","))

但是我不知道如何匹配字符串和列表中的一行之间的相等大小写 预期结果是

val output="Banana_August_15"`

【问题讨论】:

    标签: scala


    【解决方案1】:

    不确定为什么要用下划线替换逗号,或者 case class 的用途是什么,但这会产生请求的结果。

    listin.filter(_.startsWith(inputstring+","))
          .map(_.replaceAllLiterally(",","_")
    //res0: List[String] = List(Banana_August_15)
    

    【讨论】:

    • 感谢您的回答,我只是对匹配输入字符串的第一行感兴趣,我想我应该使用.first()),请您确认一下,谢谢
    • 没有first() 方法。您可以使用 head 检索结果的第一个元素,但如果 List 为空,即未找到匹配项,则会引发异常。这样使用headOption 会更安全。
    • 您可以使用listin.find 查找第一个匹配记录。找到第一个匹配项时 find 将停止搜索
    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 2013-06-18
    • 2021-11-30
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多