2017-05-07 63 views
4

我试图解析一个CSV文件,其中一些线路可能有失踪领域,我发现这个奇怪的现象:字符串分割多结束符

scala> val s = "1,2,,," 
s: String = 1,2,,, 

scala> s.split(",") 
res4: Array[String] = Array(1, 2) 

虽然我期待的结果是Array(1,2,"","","") 。我错过了什么吗?如果不是,这种行为的理由是什么?

回答

3

该行为被继承from Java。也是继承,但没有完整记录,是Java替代方法split()

scala> val s = "1,2,,," 
s: String = 1,2,,, 

scala> s.split(",", -1) 
res0: Array[String] = Array(1, 2, "", "", "") 
+0

感谢您的回复。这很有道理。根据文档,*如果n是非正数,那么该模式将尽可能多地应用,并且该数组可以具有任何长度*。当我尝试使用不同负数限制的'split'方法时,它给了我相同的输出。这是否意味着所有负数,因为无论实际值如何,限制的行为方式都是相同的? – Psidom

+1

是的。这就是我理解文档的含义,并且在我(非常有限)的经验中,我没有发现任何不同的负面数字行为。 – jwvh