在 Ruby 中将数组转换为字符串
作者:迹忆客
最近更新:2023/03/21
浏览次数:
给定一个数组,例如 ['12', '34', '56']
。如何在 ruby 中将其转换为字符串?
在 Ruby 中使用 to_s
将数组转换为字符串
to_s
是一种常见的内置方法,可用于数组类型和大多数 ruby 数据类型,包括哈希、数字甚至布尔值。返回值的类型为字符串。
['12', '34', '56'].to_s
输出:
"["12", "34", "56"]"
我们可能会发现输出格式看起来很复杂,但在打印时却相当不错。
puts ['12', '34', '56'].to_s
输出:
["12", "34", "56"]
当我们将数组插入字符串时,它会在后台调用 to_s
。
array = ['12', '34', '56']
string = "My array: #{array}"
puts string
输出:
My array: ["12", "34", "56"]
在 Ruby 中使用 inspect
转换数组字符串
inspect
为 ruby 中的任何对象返回一个人类可读的字符串,它可以用来代替 to_s
。
puts ['12', '34', '56'].inspect
输出:
["12", "34", "56"]
在 Ruby 中使用 join
和 map
将数组转换为字符串以实现复杂的输出格式
如何将 ['12', '34', '56']
转换为格式为 '12','34','56'
的字符串?
正如我们所见,to_s
和 inspect
都返回额外的方括号、空格,并使用双引号 ("
) 而不是单引号 ('
)
为此,我们可以结合 join
和 map
将数组转换为具有自定义输出格式的字符串。
首先,使用 Array#join
在数组项之间添加分隔符。
['12', '34', '56'].join("','")
输出:
"12','34','56"
其次,使用字符串插值将临时结果括在一对单引号内。
delimeter_added_string = ['12', '34', '56'].join("','")
result = "'#{delimeter_added_string}'"
puts result
输出:
=> '12','34','56'