Ruby 如何将字符串拆分为数组中两个单独的字符串

Ruby 如何将字符串拆分为数组中两个单独的字符串,ruby,split,Ruby,Split,我有以下Ruby on Rails参数: 我试着像下面这样做: params[:type][0].split(",") #=> ["abc", " def"] 但我不确定为什么在第二个字符串之前有空格 如何实现这一点?因为字符串中有空格,所以使用split的结果也会将其包含在数组的splited元素中 您可以先删除空白,然后使用split。或者添加“,”作为拆分值,以逗号及其后的空格为顺序。或者根据您试图获得的结果,映射数组中的结果元素并删除其中的空白,如: string = 'abc,

我有以下Ruby on Rails参数:

我试着像下面这样做:

params[:type][0].split(",") #=> ["abc", " def"]
但我不确定为什么在第二个字符串之前有空格


如何实现这一点?

因为字符串中有空格,所以使用split的结果也会将其包含在数组的splited元素中

您可以先删除空白,然后使用split。或者添加“,”作为拆分值,以逗号及其后的空格为顺序。或者根据您试图获得的结果,映射数组中的结果元素并删除其中的空白,如:

string = 'abc, def'
p string.split ','              # ["abc", " def"]
p string.split ', '             # ["abc", "def"]
p string.delete(' ').split ','  # ["abc", "def"]
p string.split(',').map &:strip # ["abc", "def"]

只需去除数组-params[:type][0]。split、.compact.collect&:strip delete“”将从字符串中删除所有空格字符,而不仅仅是多余的空格。p string.split、.map&:strip将是一个更好的选择,尽管split',如果可能的话是最好的情况。@Sebastian Palma。谢谢我刚刚意识到,如果我有3个值,例如[abc,def,],那么最后一个值是空白值。我也可以把它分开吗。我尝试过,但它给出了[abc,def,\\],您可以使用string.split',',string.delete'.split',或拒绝数组string.split','中的空值。map&:strip.reject&:empty?。
params[:type][0].split(",") #=> ["abc", " def"]
string = 'abc, def'
p string.split ','              # ["abc", " def"]
p string.split ', '             # ["abc", "def"]
p string.delete(' ').split ','  # ["abc", "def"]
p string.split(',').map &:strip # ["abc", "def"]