多行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))