Rails操纵一个字符串

时间:2014-05-19 14:52:37

标签: ruby-on-rails string

我有一个看起来像这样的字符串:

  ["7zip", "SysInternals", "Office", "PDF-Creator", ""]

我想将其更改为如下所示:

 http://www.domain.com/7zip,office,pdf-creator

你知道我该怎么办?

1 个答案:

答案 0 :(得分:2)

这不是一个字符串,它是一个Array对象(字符串)。

点击.join(',')

["7zip", "SysInternals", "Office", "PDF-Creator", ""].join(',')

如果你想摆脱空字符串所以你没有额外的逗号,

["7zip", "SysInternals", "Office", "PDF-Creator", ""].reject{ |c| c.empty? }.join(',')

根据您的问题,看起来您正在放弃" SysInternals"由于某些原因。如果那是故意的,那么你也需要拒绝那个;

["7zip", "SysInternals", "Office", "PDF-Creator", ""].reject{ |c| c.empty? || c == "SysInternals" }.join(',')

如果您有更通用的方法来选择或拒绝阵列中的某些项目,最好使用它。您还可以创建一种方法来清理它。

def reject_item?( item )
  item.empty? || item == "SysInternals"
end

["7zip", "SysInternals", "Office", "PDF-Creator", ""].reject{ |c| reject_item?(c) }.join(',')

最后,如果你想要贬低价值观,你就需要这样做!

["7zip", "SysInternals", "Office", "PDF-Creator", ""].reject{ |c| reject_item?(c) }.collect{ |c| c.downcase }.join(',')

您应该阅读Array class,特别是ArraycollectArrayrejectArrayjoin