我想在循环中读取一些行并将它们连接起来:
d = ""
while s = gets do
d = d.concat(s)
end
puts d
CNTRL在我用+取消循环后Z(在 Windows 上),输出只是我在循环中读取的最后一个字符串。我也尝试过+
,<<
但结果相同。
我想在循环中读取一些行并将它们连接起来:
d = ""
while s = gets do
d = d.concat(s)
end
puts d
CNTRL在我用+取消循环后Z(在 Windows 上),输出只是我在循环中读取的最后一个字符串。我也尝试过+
,<<
但结果相同。
您可以通过以下两种方式进行操作:
d = ""
while s = gets do
d << s
end
puts d
编辑:Marc-André Lafortune 注意到 using+=
不是一个好主意,所以我<<
在这里只留下方法。
两种好方法是使用<<
or join
:
d = ""
while s = gets do
d << s
end
puts d
或者
a = []
while s = gets do
a << s
end
puts a.join
您不想做的是+=
在第一个示例中使用。想象一下,您的循环迭代 200 次并返回 100 character-long s
。您将构建 200 个字符串,长度分别为 100、200、300、...、199900、200000。那将是O(n^2)
.