基本问题。
而不是在元素之间添加'\ n':
>> puts "#{[1, 2, 3].join('\n')}"
1\n2\n3
我需要实际添加换行符,因此打印时我期望的输出是:
1
2
3
在Ruby中最好的方法是什么?
答案 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程序员。