这是我一直想弄清楚但暂时无法解决的问题。
假设我有以下四个要素:
name = "Mark"
location = ""
time = Time.now
text - "foo"
如果我使用str#%
进行格式化,就像这样:"%s was at the location \"%s\" around %s and said %s" % [name,location,time.to_s,text]
,我如何避免空格和孤立单词的问题? (例如,“马克在该位置”“大约在2011-12-28T020500Z-0400并说foo”)
我还可以使用其他任何技术吗?
答案 0 :(得分:3)
只需逐个构建字符串并组合结果。如果您有权访问.blank,您可以轻松清理以下内容? (我认为这是空白的?)
parts = []
parts << name if name && !name.empty?
parts << "was" if name && !name.empty? && location && !location.empty?
parts << %{at location "#{location}"} if location && !location.empty?
parts << "around #{time}"
parts << "and" if location && !location.empty? && text && !text.emtpy?
parts << "said #{text}" if text && !text.empty?
parts.join(" ")