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

Stewart Nguyen 2023年1月30日 2022年5月18日
  1. 在 Ruby 中使用 to_s 将数组转换为字符串
  2. 在 Ruby 中使用 inspect 转换数组字符串
  3. 在 Ruby 中使用 joinmap 将数组转换为字符串以实现复杂的输出格式
在 Ruby 中将数组转换为字符串

给定一个数组,例如 ['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 中使用 joinmap 将数组转换为字符串以实现复杂的输出格式

如何将 ['12', '34', '56'] 转换为格式为 '12','34','56' 的字符串?

正如我们所见,to_sinspect 都返回额外的方括号、空格,并使用双引号 (") 而不是单引号 (')

为此,我们可以结合 joinmap 将数组转换为具有自定义输出格式的字符串。

首先,使用 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'

相关文章 - Ruby Array

相关文章 - Ruby String