计算Ruby中一行中CSV中元素的数量

时间:2017-11-21 16:25:22

标签: ruby csv foreach

我有以下代码来处理CSV:

CSV.foreach("./matrix1.csv") do |row|
 puts "Row is: " 
 print row
 line_count += 1
end

它成功找到了CSV中的行数。但是,如何在一行(行)中找到CSV元素的数量。 例如,我有以下CSV

1,2,3,4,5

我怎样才能看到元素的数量是5?

2 个答案:

答案 0 :(得分:1)

如果每行包含相同数量的元素,则:

CSV.open('test.csv', 'r') { |csv| puts csv.first.length }

如果没有则计算每一行:

CSV.foreach('test.csv', 'r') { |row| puts r.length }

答案 1 :(得分:0)

row.size 

按照@Stefan

的建议工作

但更容易出错的方法是:

CSV.foreach('test.csv','r').max_by(&:length).length

另一种方法是获取当前行的大小:

CSV.foreach('test.csv', 'r') { |row| puts r.length }