1

Rubyでファイルから一度に複数行を読み取るにはどうすればよいですか?

を使用してみeach_slice(2)ましrequire 'enumerator'たが、機能しません。次のエラーが表示されます。

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

1 に答える 1

7

と の両方IOに列挙子があり、これを呼び出すことができStringます。lineseach_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 に答える