代码如下:
ruby-1.9.2-p290 :019 > "a, , b, c".delete(" , ")
=> "abc"
我想要它
a, b, c
我做错了什么?
最佳答案
delete
删除您交给它的字符串中出现的所有字符(参见 ruby-doc )。你需要的是类似
"a, , b, c".gsub(/(\s*,\s*)+/, ', ')
更新:
如以下评论中所述,该字符串是 join(', ')
的结果。在这种情况下,更好的方法是在加入之前删除空/nil
元素,即
array.compact.join(', ') # if some elements are nil
array.delete_if(:&empty?).join(', ') # if some elements are ''
array.compact.delete_if(:&empty?).join(', ') # if both can occur
关于Ruby 删除空间无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153783/