给出一个已经被完全装载到内存中的大String
val s =
"""|head
|middle
|last""".stripMargin
如何安全地检索第一行和最后一行,而又不进行其他复制?我的尝试是将lineIterator
与Try
结合使用,如下所示
val it = s.linesIterator
val head = Try(it.next())
val last = Try(it.dropWhile(_ => it.hasNext).next())
// head: scala.util.Try[String] = Success(head)
// last: scala.util.Try[String] = Success(last)
[[最好是针对Scala 2.12的解决方案,但2.13也会很有趣。