在 Ruby 中將陣列轉換為字串

Stewart Nguyen 2023年1月30日
  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