基本問題。如何正確連接數組中的LF字符?
而不是添加的元素之間「\ n」的:
>> puts "#{[1, 2, 3].join('\n')}"
1\n2\n3
我需要實際添加換行符,所以在打印時我期望的輸出將是:
什麼是做的最好的方法在Ruby中?
基本問題。如何正確連接數組中的LF字符?
而不是添加的元素之間「\ n」的:
>> puts "#{[1, 2, 3].join('\n')}"
1\n2\n3
我需要實際添加換行符,所以在打印時我期望的輸出將是:
什麼是做的最好的方法在Ruby中?
您需要使用雙引號。
puts "#{[1, 2, 3].join("\n")}"
注意,你沒有,因爲他們是一個替代的{}
內逃脫雙引號,因此將不被視爲分隔符外的字符串。
不過,你也甚至不需要在#{}
包裝,如果這一切你做的 - 下面將正常工作:
puts [1,2,3].join("\n")
Ruby不會解釋單引號字符串中的轉義序列。
你想使用雙引號:
puts "#{[1, 2, 3].join(\"\n\")}"
NB:我的語法可能是壞的 - 我不是一個Ruby程序員。
轉義字符只能在雙引號字符串中使用:
puts "#{[1, 2, 3].join("\n")}"
但因爲你所有的輸出是這一個說法,我不會引用join
聲明:
puts [1, 2, 3].join("\n")
注意,只能加入增加了線路之間換行。它不會在最後一行的末尾添加換行符。如果你需要每一行以換行符結束,那麼:
#!/usr/bin/ruby1.8
lines = %w(one two three)
s = lines.collect do |line|
line + "\n"
end.join
p s # => "one\ntwo\nthree\n"
print s # => one
# => two
# => three
或[1,2,3] .join(「\ n」)+「\ n」:) – Veger 2010-01-10 21:42:44
確實。一個是terser,一個不重複「\ n」。最好是開發人員如何測量「幹」中的「R」的好晴雨表。 – 2010-01-10 22:03:29
@Dav,在我看到你回答之前,我測試了我的...並意識到這一點。我想我從來沒有嘗試過,我只使用簡單變量或'variable.method'語法的替代。很好的答案! – 2010-01-10 21:23:56