Scala 将元素累积到列表中第n个元素之前
我想创建一个从n+1到n.length的列表,其中n是传递给函数的值Scala 将元素累积到列表中第n个元素之前,scala,Scala,我想创建一个从n+1到n.length的列表,其中n是传递给函数的值 def test(n:String) ={ val list = List("1","12","30","40","50") list match{ case s::rest if s==n => Seq(rest).flatten case _ => Nil } } 如果通过了“12”,我将得到一个空列表 预期输出=列表(“30,40,50”)换句话说,您希望从列表中删除第一
def test(n:String) ={
val list = List("1","12","30","40","50")
list match{
case s::rest if s==n => Seq(rest).flatten
case _ => Nil
}
}
如果通过了“12”
,我将得到一个空列表
预期输出=
列表(“30,40,50”)
换句话说,您希望从列表中删除第一个n
值。为此,您可以使用drop
:
list.drop(n)
list.dropWhile(_ != "12").drop(1)
如果要根据条件删除值,请使用dropWhile
:
list.dropWhile(_ != "30")
要排除匹配元素,请使用另一个下拉列表:
list.drop(n)
list.dropWhile(_ != "12").drop(1)
[如注释中所述,如果找不到元素,使用tail
可能会导致异常]换句话说,您希望从列表中删除第一个n
值。为此,您可以使用drop
:
list.drop(n)
list.dropWhile(_ != "12").drop(1)
如果要根据条件删除值,请使用dropWhile
:
list.dropWhile(_ != "30")
要排除匹配元素,请使用另一个下拉列表:
list.drop(n)
list.dropWhile(_ != "12").drop(1)
[如注释中所述,如果未找到元素,使用tail
可能导致异常]您的预期输出的输入是什么?2.还是3?什么是长度?您的意思是list.length
?预期输出的输入是什么?2.还是3?什么是长度?您的意思是list.length
?如果“12”
是最后一个元素,您的最后一个表达式将抛出。我猜你的意思是list.dropWhile(!=“12”).tailOpt.getOrElse(Nil)
如果最后一个元素返回list(),他想在元素之前删除元素,包括他传递的字符串,但他没有传递要删除的值的数量drop
函数接受一个Int
参数,但他正在传递一个特定的字符串值,之后他希望保留所有元素并删除所有元素,然后再包含传递的元素。列表。dropWhile(!=“12”).tail
仅适用。是。。tail可能会导致异常。现在添加drop(1)后应该可以了。如果“12”
是最后一个元素,则最后一个表达式将抛出。我猜你的意思是list.dropWhile(!=“12”).tailOpt.getOrElse(Nil)
如果最后一个元素返回list(),他想在元素之前删除元素,包括他传递的字符串,但他没有传递要删除的值的数量drop
函数接受一个Int
参数,但他正在传递一个特定的字符串值,之后他希望保留所有元素并删除所有元素,然后再包含传递的元素。列表。dropWhile(!=“12”).tail
仅适用。是。。tail可能会导致异常。现在添加drop(1)后应该可以了。