Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将多个变量组合成一个字符串并添加逗号_Arrays_Ruby_String - Fatal编程技术网

Arrays 将多个变量组合成一个字符串并添加逗号

Arrays 将多个变量组合成一个字符串并添加逗号,arrays,ruby,string,Arrays,Ruby,String,我有多个字符串: address_1 = '226' address_2 = 'Virginia Ave' address_city = 'Trenton' address_state = 'NJ' address_country = 'US' address_postal_code = '08610' 我试图将它们组合成一个字符串,用逗号分隔,如下所示: "226 Virginia Ave, Trenton, NJ, 08610, US" 如何将变量组合成一个字符串,用逗号分隔,如果缺少任

我有多个字符串:

address_1 = '226'
address_2 = 'Virginia Ave'
address_city = 'Trenton'
address_state = 'NJ'
address_country = 'US'
address_postal_code = '08610'
我试图将它们组合成一个字符串,用逗号分隔,如下所示:

"226 Virginia Ave, Trenton, NJ, 08610, US"
如何将变量组合成一个字符串,用逗号分隔,如果缺少任何变量,则不显示额外的逗号

我这样做:

(address_1.to_s + ' ' + address_2.to_s + ' ' + address_city.to_s + ' ' + address_state.to_s + ' ' + address_postal_code.to_s + ' '  + address_country.to_s).squish
这将产生如下输出:

"226 Virginia Ave Trenton NJ 08610 US"
"226 Virginia Ave, , , 08610, US"
这是因为我正在添加空格
++'+
。如果我执行了
+,'+
,如果
地址
中的任何一个为
nil
或为空,它仍会显示额外的
,并且地址最终看起来如下:

"226 Virginia Ave Trenton NJ 08610 US"
"226 Virginia Ave, , , 08610, US"
这会将所有地址元素放在一个数组中,映射以将所有行更改为剥离字符串,然后选择非空的行,然后使用逗号和空格进行连接


第一个元素是address_1和address 2的组合,以避免在门牌号后出现逗号。

尝试使用array compact。这可能会解决你的问题

address_arr = [address_1, address_2, address_city, address_state, address_country, address_postal_code]
no_empty_address = address_arr.reject{ |c| c.empty? }
no_empty_address.compact.join(', ')

将它们放在一个数组中,并使用
ari.compact.join(',')
。Compact删除缺少的项,join用指定的分隔符将其余项粘在一起。如果
地址
中的任何一个为
nil
,则此操作有效,但如果它为空,则不起作用,如果为空,则我仍会看到额外的逗号。谢谢,如果
地址
中的任何一个为
nil
,则此操作无效,在空的情况下,我仍然看到额外的逗号,附件是一个修订的解决方案,将所有元素转换为字符串,然后去掉所有空字符串。