多行Scala列表

多行Scala列表,scala,list,split,user-defined-functions,Scala,List,Split,User Defined Functions,当我在函数中输入一个数组时,我得到了正确的结果。现在,我想将一个多行列表(或我可以从多行字符串生成的其他类型)输入到我的函数中 这很有效。但我想在函数中传递多行 val inputList = List("""foo, bar, bar, foo, bar, foo, foo, bar, foo, bar, bar, foo""") 谢谢大家! val inputList = """foo, bar, bar, foo, bar, foo, foo, bar, foo, bar, bar,

当我在函数中输入一个数组时,我得到了正确的结果。现在,我想将一个多行列表(或我可以从多行字符串生成的其他类型)输入到我的函数中

这很有效。但我想在函数中传递多行

val inputList = List("""foo, bar, bar, foo, 
bar, foo, foo, bar,
foo, bar, bar, foo""")
谢谢大家!

val inputList = """foo, bar, bar, foo, 
bar, foo, foo, bar,
foo, bar, bar, foo""".split(",\\s*").toList

println(inputList)

,\s*
正则表达式表示“逗号,然后是0个或多个空格”,其中空格是a(包括\r\n和空格…。

好吧。。。首先,让我们了解一些事情,以便你能更清楚地解释你的问题

// This is a single-line string
val singleLineString = "I am a single line string"

// This is a multi-line string
val multiLineString = """I am a
multiline
string"""

// This is a List of Strings
val list1 = List("string1", "string2")

// List just looks at String... it does not care whether the strings are mutli-line or single-line
val list2 = List(singleLineString, multiLineString)
现在。。。如果您有一个多行字符串

val inputMultiLineString = """blah1, blah2, blah3, blah4, 
blah5, blah6, blah7, blah8,
blah9, blah10, blah11, blah12"""
你想把每一行都分成几个字,同时把它们分开

val yourSeparatedLines = inputMultiLineString
  .split("\n")
  .map(line => line.split(",").map(word => word.trim).toList)  
  .toList

// yourSeparatedLines: List[List[String]] = List(List(blah1, blah2, blah3, blah4), List(blah5, blah6, blah7, blah8), List(blah9, blah10, blah11, blah12))
val yourSeparatedLines = inputMultiLineString
  .split("\n")
  .map(line => line.split(",").map(word => word.trim).toList)  
  .toList

// yourSeparatedLines: List[List[String]] = List(List(blah1, blah2, blah3, blah4), List(blah5, blah6, blah7, blah8), List(blah9, blah10, blah11, blah12))