如何在数组中正确连接LF字符?

时间:2010-01-10 21:13:04

标签: ruby

基本问题。

而不是在元素之间添加'\ n':

>> puts "#{[1, 2, 3].join('\n')}"
1\n2\n3

我需要实际添加换行符,因此打印时我期望的输出是:

1

2

3

在Ruby中最好的方法是什么?

4 个答案:

答案 0 :(得分:3)

您需要使用双引号。

puts "#{[1, 2, 3].join("\n")}"

请注意,您不必转义双引号,因为它们在替换的{}范围内,因此不会被视为外部字符串的分隔符。

但是,你甚至不需要#{}包装器,如果这就是你所做的一切 - 以下工作正常:

puts [1,2,3].join("\n")

答案 1 :(得分:1)

转义字符只能用于双引号字符串:

puts "#{[1, 2, 3].join("\n")}"

但由于您输出的所有内容都是这一条,我不会引用join语句:

puts [1, 2, 3].join("\n")

答案 2 :(得分:1)

请注意,加入仅在行之间添加换行符。它不会在最后一行的末尾添加换行符。如果您需要以换行结束每一行,那么:

#!/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

答案 3 :(得分:0)

Ruby不解释单引号字符串中的转义序列。

您想使用双引号:

puts "#{[1, 2, 3].join(\"\n\")}"

注意:我的语法可能不好 - 我不是Ruby程序员。