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