1

如何从 Ruby 中的文件一次读取多行?

我尝试使用each_slice(2)并且也做了:require 'enumerator',但它不起作用。我收到以下错误:

undefined method `each_slice' for #<String:0x877d12c> (NoMethodError)
4

1 回答 1

7

两者IO都有String一个lines枚举器,您可以调用each_slice它:

irb(main):004:0> STDIN.lines.each_slice(2).take(2)
a
a
b
c
=> [["a\n", "a\n"], ["b\n", "c\n"]]

当然,您可以STDIN用任何其他IO实例(打开文件)替换。带字符串的演示:

irb(main):005:0> "a\na\nb\nc".lines.each_slice(2).to_a
=> [["a\n", "a\n"], ["b\n", "c"]]

这两个都在 Ruby >= 1.8.7 中工作

于 2012-04-07T21:23:41.910 回答