如何在Scala中将杂乱无章的文本文件转换为Array [String]?

时间:2019-06-05 00:28:04

标签: scala split text-files

我有一个文本文件,如下所示:

 10 10 
 54 129 155 559 10.00 10.00 
 99999 3 15 15 15 15 15 15 
 15 15 
 120 195 258 744 10.00 10.00 
 3 99999 15 15 15 15 15 15 
 15 15 

每行的整数/双精度数可能会有所不同。

我无法逐行读取,因为它们上的数量不是恒定的。我一直在尝试使用split,mkString之类的方法,但没有成功。

val lines = Source.fromFile(s"/tmp/$filepath")
                  .getLines.mkString
                  .split("\n").mkString
                  .split(" ").map(_.trim)

当我尝试阅读它时:

lines(0).toInt

它返回:[NumberFormatException:对于输入字符串:“”]

需要看起来像这样:

A = Array('10','10','54','129','155','559','10.00','10.00','99999','3','15' ,“ 15”,“ 15”,“ 15”,“ 15”,“ 15”,“ 15”,“ 15”,“ 120”,“ 195”,“ 258”,“ 744”,“ 10.00”,“ 10.00”,“ 3”,“ 99999”,“ 15”,“ 15”,“ 15”,“ 15”,“ 15”,“ 15”,“ 15”,“ 15”)

1 个答案:

答案 0 :(得分:3)

不确定那里的所有mkString想要什么...无论如何,这可以正常工作:

io.Source.fromFile("input.txt").getLines.flatMap(_.trim.split(" +")).toArray