在 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 ", " ", " ")
我是 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 ", " ", " ")