Ответ 1
String#lstrip
(или String#lstrip!
) что вы после.
desired_output = example_array.map(&:lstrip)
Больше комментариев о вашем коде:
-
delete_if {|x| x == ""}
можно заменить наdelete_if(&:empty?)
- Если вы хотите
reject!
, потому чтоdelete_if
будет возвращать только другой массив, а не изменять существующий. -
words.each {|e| e.lstrip!}
можно заменить наwords.each(&:lstrip!)
-
delete("\r")
должен быть избыточным, если вы читаете текстовый документ в стиле Windows на машине Windows или документ в стиле Unix на машине Unix. -
split(",")
можно заменить наsplit(", ")
илиsplit(/, */)
(или/, ?/
, если должно быть не более одного пространства)
Итак, теперь это выглядит так:
words = params[:word].gsub("\n", ",").split(/, ?/)
words.reject!(&:empty?)
words.each(&:lstrip!)
Я бы мог дать больше советов, если бы у вас был образец текста.
Изменить: Хорошо, здесь идет:
temp_array = text.split("\n").map do |line|
fields = line.split(/, */)
non_empty_fields = fields.reject(&:empty?)
end
temp_array.flatten(1)
Используемые методы: String#split
, Enumerable#map
, Enumerable#reject
и Array#flatten
.
В Ruby также есть библиотеки для разбора разделенных запятыми файлов, но я думаю, что они немного отличаются между 1,8 и 1,9.