如何从列表中删除文本?

时间:2018-01-29 02:04:46

标签: scala list

我正在使用List,我想删除字段名称并为结果添加引号。我所拥有的是以下代码返回:

  

日期:2001年3月28日星期三08:07:00 -0800(太平洋标准时间)

预期输出为:

  

" Wed,2001年3月28日08:07:00 -0800(太平洋标准时间)"

我有这段代码,但如何在结果周围添加"并删除"日期:"

val toField = lines.dropWhile(line => !line.startsWith("To: ")).takeWhile(line  => !line.startsWith("Subject: "))

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果所有字段名称相同(即"日期:"),则可以在所有列表元素上使用substring。假设一个包含两个元素的简单列表:

val toField = List("Date: Wed, 28 Mar 2001 08:07:00 -0800 (PST)", "Date: Fri, 30 Mar 2001 08:07:00 -0800 (PST)")
val dates = toField.map(f => "\"" + f.substring(6) + "\"")

同时也会添加引号。

但是,如果字段名称的长度可以不同,则使用split会更合适:

val res = toField.map(f => "\"" + f.split(":").tail.mkString(":").trim() + "\"")

这将在"上拆分字符串并删除头部元素。