我试图将txt文件中的所有字词(标点符号和数字除外)存储到列表中?
我对scala很新,并且无法弄清楚如何做到这一点?有人可以帮忙吗?
编辑:
我现在这样做:
for(line <- Source.fromFile("src/stop_words.txt").getLines())
{
//println(line)
lst = line
}
println(lst)
它给了我一条关于lst = line的红线,并说要重新分配给一个val。我不知道为什么:(
答案 0 :(得分:3)
假设每行可以有多个单词,则更好的解决方案是
val words = """([A-Za-z])+""".r
val all = io.Source.fromFile("path/to/file.txt").getLines.flatMap(words.findAllIn).toList
答案 1 :(得分:1)
你可以使用scala.io.Source和regex过滤器以及最后的toList
io.Source.fromFile("path/to/file.txt").
getLines().
filter(_.matches("[A-Za-z]+")).
toList
<强> 更新 强>:
你的档案里面有什么?这个简单的代码按预期工作
val list = io.Source.fromBytes(
"""aaa
|bbb
|123
|.-ddg
|AZvb
""".stripMargin.toArray.map(_.toByte)).
getLines().
filter(_.matches("[A-Za-z]+")).
toList
println(list)
输出:
List(aaa, bbb, AZvb)