ruby – 如何将STDIN内容转换为数组?

前端之家收集整理的这篇文章主要介绍了ruby – 如何将STDIN内容转换为数组?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个文件INPUT,其中包含以下内容
123\n
456\n
789

我想像这样运行我的脚本:script.rb< INPUT并将INPUT文件内容转换为数组,拆分新行字符.所以,我有像myArray = [123,456,789]这样的东西.这是我试图做的事情并没有太多运气:

myArray = STDIN.to_s
myArray.split(/\n/)
puts field.size

我期待这打印3,但我得到15.我真的很困惑.有什么指针吗?

解决方法

你要
myArray = $stdin.readlines

这将把所有$stdin放入一个数组中,每行输入一个数组条目.

请注意,使用大量输入文件这是非常低效(内存方面),因此您最好使用以下内容

$stdin.each_line do |l|
  ...
end

代替

a = $stdin.readlines
a.each do |l|
  ...
end

因为前者不为前期的所有事物分配内存.尝试以第二种方式处理数GB的日志文件,以了解系统的交换性能有多好……< grin>

原文链接:https://www.f2er.com/ruby/269411.html

猜你在找的Ruby相关文章