我对Scala字符串拆分行为有点困惑,因为它不能一致地工作并且缺少一些列表元素.例如,如果我有一个包含4列和1个缺少元素的CSV字符串.
"elem1, elem2,,elem 4".split(",") = List("elem1", "elem2", "", "elem4")
Run Code Online (Sandbox Code Playgroud)
大!这就是我所期待的.
另一方面,如果缺少元素3和4,则:
"elem1, elem2,,".split(",") = List("elem1", "elem2")
Run Code Online (Sandbox Code Playgroud)
而我希望它能够回归
"elem1, elem2,,".split(",") = List("elem1", "elem2", "", "")
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
Ale*_*x K 46
正如Peter在他的回答中提到的"string".split()
,在Java和Scala中,默认情况下不会返回尾随空字符串.
但是,您可以通过传入第二个参数来指定它返回尾随的空字符串,如下所示:
String s = "elem1,elem2,,";
String[] tokens = s.split(",", -1);
Run Code Online (Sandbox Code Playgroud)
这将获得预期的结果.
归档时间: |
|
查看次数: |
6650 次 |
最近记录: |