【发布时间】:2020-01-02 22:14:15
【问题描述】:
我是 Scala 的新手,所以我一直在努力阅读文本文件。我正在尝试使用一个方法创建一个对象,该方法接受一个表示文件名的字符串并返回一个 int,它是值的总和。但是,文本文件令人讨厌地被主题标签分隔。
这是示例文本文件的样子:
3#1#8
12#9#25#10
-2#12
1#2
How do you split this?
【问题讨论】:
-
Source.fromFile(fileName).getLines().flatMap(_.split("#")).flatMap(_.toIntOption).sum -
哇,这还能做什么?
-
该代码就是您所需要的。它应该适用于 Scala 2.13。如果您使用的是 2.12 或更早版本,
toIntOption不存在,但如果您确定所有值都是数字或flatMap(str => Try(str.toInt).toOption),则可以轻松替换为map(_toInt)。 -
啊,看来我在 scala 2.12.10 上。也许这就是原因。
-
.mkString()是一种流行的修复方法。其他人喜欢.toList或.toSeq。还有一些更深奥的解决方案。
标签: scala