2012-02-08 78 views
-2

我需要一个Ruby程序,给定一个文件作为参数,返回一个散列或数组,给出每行的字符数。如何计算字符数,逐行

如何在Ruby中优雅地做到这一点?

+0

请[不加签名或标语到您的帖子](http://stackoverflow.com/faq#signatures)。 – meagar 2012-02-08 18:13:22

+4

堆栈溢出期望您显示您编写的代码有问题的代码,我们将帮助您解决问题。要求我们为您编写代码不在范围之内。你能告诉我们你已经尝试过了吗? – 2012-02-08 18:17:43

回答

4
File.open('file_name').map(&:length) 
+0

太好了!难以置信! – JCLL 2012-02-08 22:11:00

2

检查:

File.open('file_name').inject([]) do |counts, line| 
    counts << line.size 
end 

大家注意到,它也将算新行字符。
对于内容文件

aa 
aaaa 
a 

结果将是

[3, 5, 1] 

如果你不想算来,看看这个方法String#chomp

+0

我喜欢这个。返回的数组可以通过行号索引以获得该行中字符的数量。 – theglauber 2012-02-08 18:29:02

+2

'inject([])'是'map' – steenslag 2012-02-08 19:37:06