RUBY中字符串的不同行上的不同操作

时间:2014-11-19 11:19:48

标签: ruby string

我有以下字符串:

aaaaaa; bbbbbbbb
cccccc; cccccccc
dddddd; dddddddd

我需要针对不同的行采取不同的行动。 更准确地说,我必须用第一行做一些事情,用另一个做一些事情 - 2,用最后一行做点事情3。伪代码:

out.each_line { |ln|

   if ln first
       do somenthing-1
   end

   if ln others
       do somenthing-2
   end

   if ln last
       do somenthing-3
   end

}

2 个答案:

答案 0 :(得分:1)

我觉得这个替代方案更具可读性:

first, *middle, last = out.lines

do_something_1(first)
middle.each{|line| do_something_2(line) }
do_something_3(last)

答案 1 :(得分:0)

怎么样:

lines = out.lines
do_something_1(lines.first)

lines[1..-2].each do |line|
  do_something_2(line)
end

do_something_3(lines.last)

此代码将对第一行执行某些操作,对除第一行和最后一行之外的所有行执行一些其他操作,并在最后一行执行第三操作。