循环后删除空行

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

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" 

在此先感谢您的帮助。

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

你可以用\n 分割字符串,然后拒绝任何空白行:

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

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

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

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