scala - 在Scala中,如何在不知道长度的情况下获取从第n个元素到列表末尾的列表切片?

标签 scala

我正在寻找一种优雅的方法来获取从元素 n 开始的列表切片,而无需指定列表的长度。假设我们有一个多行字符串,我将其分成几行,然后想要获取从第 3 行开始的所有行的列表:

string.split("\n").slice(3,X)       // But I don't know what X is...

我真正感兴趣的是是否有一种方法可以获取 split 调用返回的列表的引用,以便其长度可以替换为 Xslice 调用时,有点像一个奇特的 _ (在这种情况下,它会读作 slice(3,_.length) )?在 python 中,不需要指定切片的最后一个元素。

当然,我可以通过在分割后使用临时变量或创建一个具有良好语法的辅助函数来解决这个问题,但我只是好奇。

最佳答案

只需删除前 n 个不需要的元素即可:

List(1,2,3,4).drop(2)
res0: List[Int] = List(3, 4)

或者根据您的情况:

string.split("\n").drop(2)

还有成对的方法 .take(n) 执行相反的操作,您可以将其视为 .slice(0,n)

如果您需要这两个部分,请使用.splitAt:

val (left, right) = List(1,2,3,4).splitAt(2)
left: List[Int] = List(1, 2)
right: List[Int] = List(3, 4)

关于scala - 在Scala中,如何在不知道长度的情况下获取从第n个元素到列表末尾的列表切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259250/

相关文章:

scala - 为什么 SBT 给我一个类型不匹配错误?

scala - 如何在 Scala 中将数字格式化为百分比?

Scala Actor 异常 "react on channel belonging to other actor"

scala - Scala 中无限流的嵌套迭代

scala - Scala可以比较不兼容对象的原因和/或好处是什么?

scala - 编写一个可以接受 Writer 和 OutputStream 的通用函数

json - Play Framework : How to sort JSON alphabetically

python - 使用 Scala 的 API 替换 DataFrame 的值

scala - 将 Spark DataFrame 保存到具有 map<string,string> 列类型的 csv 文件

scala - 在 Scala 中表示 readline 循环的最佳方式?