如何将字符串数组转换为数组并删除空元素?

时间:2018-01-19 09:51:44

标签: ruby-on-rails arrays ruby string

我有一个字符串'["", "abc", "", "def", "", "mno", "", "", "", "", ""]'。我想将其转换为数组并从该数组中删除空值。我想要的输出是abc;def;mno

有人可以帮我这么做吗?

2 个答案:

答案 0 :(得分:4)

您可以使用JSON.parseselect方法:

str = '["", "abc", "", "def", "", "mno", "", "", "", "", ""]'
arr = JSON.parse(str).select(&:present?)

输出数组:["abc", "def", "mno"]

如果您想获得abc;def;mno

joined = arr.join(';')

输出字符串:"abc;def;mno"

希望这有帮助

答案 1 :(得分:0)

使用此代码:

str = YAML.load('["", "abc", "", "def", "", "mno", "", "", "", "", ""]')
str.select{|a| a if a != ""}.join(";")