如何正确地用逗号分隔字符串中的单词?

时间:2015-03-04 06:52:36

标签: ruby

我有一个辅助方法:

def get_str(exam)
  @value = ""
  if exam.is_mc
    @value << "MC, "
  end
  if exam.is_ms
    @value << "MS, "
  end
  if exam.is_ng
    @value << "NG"
  end
  return @value
end

当满足所有这三个条件时,我得到一个字符串:MC, MS, NG

但如果只满足第一个条件,我会得到字符串:MC,

我不想在这种情况下显示逗号。

怎么可能?

2 个答案:

答案 0 :(得分:4)

最简单的方法是将连接任务传递给Array#join

def get_str(exam)
  @value = []
  @value << "MC" if exam.is_mc
  @value << "MS" if exam.is_ms
  @value << "NG" if exam.is_ng
  @value = @value.join ', '
end

希望它有所帮助。

答案 1 :(得分:0)

这也可以:

def get_str(exam)
  ['MC', 'MS', 'NG'].select{|i| exam.send("is_#{i.downcase}").join(', ')
end

唯一真正的好处是,添加更多字符串模式会更容易。