【发布时间】:2018-10-02 15:14:13
【问题描述】:
我逐行浏览文件并在每一行中查找单词“BIOS”,因为包含单词 BIOS 的每一行都有我需要的版本号。在我看到该行包含单词“BIOS”后,我想取整行,并将其拆分为一个数组。这是我的代码:
File.open(file).each do |line|
if line.includes? 'BIOS'
array = line.split(" ")
end
end
我遇到的问题是我不断收到错误消息,说“包含?”是一个未定义的方法。有没有更好的方法来解析这个文件的每一行以获得特定的字符串?
【问题讨论】:
-
你的意思不是
include?,不是复数includes? -
我知道你的意思,“我一直收到错误...”:它看起来不错,所以如果我再次运行它,它可能会起作用。这没有任何意义,但我希望我们都做到了。你需要相信 Ruby 的话。如果她说一种方法不存在,它不存在。在这里,您应该在String 的文档中查找
includes?。然后你就会发现你的错误。唉,我认为其他人不可能从这个问题中学到任何东西,所以你不妨考虑删除它。 -
考虑使用IO::foreach:
File.foreach(file) do |line| ...。顺便说一句,File.superclass #=> IO,这就是为什么你经常看到IO方法以File作为接收者。
标签: ruby fileparsing