大字符串的首行和最后一行,但不进行内存内复制

问题描述 投票:0回答:1

给出一个已经被完全装载到内存中的大String

val s =
  """|head
     |middle
     |last""".stripMargin

如何安全地检索第一行和最后一行,而又不进行其他复制?我的尝试是将lineIteratorTry结合使用,如下所示

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也会很有趣。

string scala iterator out-of-memory
1个回答
0
投票
我不确定分配,但是使用Scala 2.13插值字符串模式有效:
© www.soinside.com 2019 - 2024. All rights reserved.