如何在Ruby中将数组数组转换为一个字符串[关闭]

Posted

技术标签:

【中文标题】如何在Ruby中将数组数组转换为一个字符串[关闭]【英文标题】:How can I transform array of arrays into one string in Ruby [closed] 【发布时间】:2013-12-22 16:24:42 【问题描述】:

我有一个数组,如下所示:

arr = [[0,0,0,0,0], [0,0,1,0,0], [0,1,0,1,0], [0,0,1,0,0], [0,0,0,0,0]]

我想让它看起来像这样:

 00000
 00100
 01010
 00100
 00000

我试过这样:

arr.each |a| p a.join(',').gsub(',','')

但它的输出是这样的:

 00000
 00100
 01010
 00100
 00000

在每行的开头和结尾加上引号'""'。我希望它是一个单件,以引号开头,然后是行,最后是引号。但不要引用每一行。

【问题讨论】:

输出有什么区别? 我有 5 个由 .each 生成的单独字符串,而不是一个完整的字符串 那你需要一个字符串吗? 【参考方案1】:

试试

arr.map |a| a.join.join("\n")

【讨论】:

OP 在自己的行中要求每个项目;你想要join("\n")。另外,请注意.join("").join 相同。 感谢您的建议。我已经更新了答案。【参考方案2】:

join 不带参数:

arr.each|el| puts el.join

【讨论】:

正是我想要的!谢谢! 这不是所要求的。标题要求将数组转换为一个字符串。我会否决这个答案,但由于 OP cmets 这正是他们正在寻找的,并接受了这个答案,我将对这个问题投反对票并密切投票,因为接受意味着这个问题被错误地陈述了。【参考方案3】:
puts arr.map(&:join)

调用map 会遍历数组(外部数组),并为每个条目调用join 方法;它返回一个新数组,其中每个条目都已被结果替换。

数组的join method 在数组的每个部分上调用to_s,并使用可选的分隔符将它们连接起来。不带参数调用 join 使用空字符串(无分隔符)。

在数组上调用 puts 会将每个条目打印在自己的行上。

或者,如果您希望最终结果为带有嵌入换行符的单个字符串:

str = arr.map(&:join).join("\n")

【讨论】:

+1 够了...这篇文章。

以上是关于如何在Ruby中将数组数组转换为一个字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ruby中将两个字符串转换为两个数组

在rails中将字符串转换为数组

在 C# 中将对象数组转换为浮点数组 [关闭]

如何在c#中将对象转换为数组? [关闭]

如何将字符串转换为字节数组? [关闭]

如何在javascript中将嵌套对象转换为对象数组? [关闭]