循环后删除空行

时间:2010-09-22 21:44:13

标签: ruby

好的,我有以下非常简单的代码:

f = "String1\n\n\nString2\n\n\n"
f.each_line do |t|
  t.delete! "\n"
  puts t.inspect
end

删除\ n,但保留空格

"String1"
nil
nil
"String2"
nil
nil

我希望它看起来像这样:

"String1"
"String2"

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

f.squeeze("\n").each_line do |l|
  puts l
end

答案 1 :(得分:1)

您可以\n之后split字符串,然后reject任意空行:

f = "String1\n\n\nString2\n\n\n"
f.split("\n").reject { |i| i.empty? }
#=> ["String1", "String2"]

您最终会得到一个可以根据需要输出的数组。

答案 2 :(得分:1)

f = "String1\n\n\nString2\n\n\n"
f.each_line.collect(&:chomp).reject(&:empty?)
#=> ["String1", "String2"]

collect(&:chomp)删除行结尾。 reject(&:empty?)抛弃所有空行。