удаление пустых строк после цикла - PullRequest
1 голос
/ 23 сентября 2010

хорошо, у меня есть следующий, очень простой код:

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 ]

3 голосов
/ 23 сентября 2010
f.squeeze("\n").each_line do |l|
  puts l
end
1 голос
/ 23 сентября 2010
f = "String1\n\n\nString2\n\n\n"
f.each_line.collect(&:chomp).reject(&:empty?)
#=> ["String1", "String2"]

collect(&:chomp) удаляет окончания строк. reject(&:empty?) выбрасывает все пустые строки.

1 голос
/ 23 сентября 2010

Вы можете разделить строку на \n, а затем отклонить любые пустые строки:

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

В результате вы получите массив, которыйвы можете выводить как хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...