在 Scala 中拆分字符串会忽略末尾的空字段

Splitting String in scala ignores void fields at the end

我是 scala 初学者,我遇到了这个问题:

发件人:"abcd ; efgh ; ijkl ; ; ; ; "

我想要:Array["abcd ","efgh "," ijkl " , "", "" , "" ,""]

而拆分函数 returns : ["abcd ","efgh "," ijkl " ]

有人可以帮忙吗?

提前致谢!

此行为来自 Java 方法 split(regex). If you want to keep the trailing empty strings in your returned array you must use the overloaded method split(regex, limit):

scala> "a,b,c,,".split(",")
res0: Array[String] = Array(a, b, c)

scala> "a,b,c,,".split(",", -1)
res1: Array[String] = Array(a, b, c, "", "")

请注意,您的示例中给出的字符串实际上有效,因为您在分隔符之间添加了空格:

scala> "a , b , c , , ".split(",")
res2: Array[String] = Array("a ", " b ", " c ", " ", " ")