Convertir array a cadena en Ruby

Stewart Nguyen 18 abril 2022
  1. Use to_s para convertir un array en cadena en Ruby
  2. Use inspect para convertir una cadena de array en Ruby
  3. Use join y map para convertir un array en cadena para un formato de salida complejo en Ruby
Convertir array a cadena en Ruby

Dada un array, por ejemplo ['12', '34', '56']. ¿Cómo convertirlo en cadena en ruby?

Use to_s para convertir un array en cadena en Ruby

to_s es un método incorporado común disponible para el tipo de array y la mayoría de los tipos de datos de Ruby, incluidos hash, número o incluso booleano. El valor devuelto tiene el tipo de cadena.

['12', '34', '56'].to_s

Producción :

"[\"12\", \"34\", \"56\"]"

Podemos encontrar que el formato de salida parece complejo, pero es bastante bueno cuando se imprime.

puts ['12', '34', '56'].to_s

Producción :

["12", "34", "56"]

Cuando interpolamos un array en una cadena, llamará a to_s debajo del capó.

array = ['12', '34', '56']
string = "My array: #{array}"
puts string

Producción :

My array: ["12", "34", "56"]

Use inspect para convertir una cadena de array en Ruby

inspect devuelve una cadena legible por humanos para cualquier objeto en Ruby, y se puede usar en lugar de to_s.

puts ['12', '34', '56'].inspect

Producción :

["12", "34", "56"]

Use join y map para convertir un array en cadena para un formato de salida complejo en Ruby

¿Cómo convertir ['12', '34', '56'] en una cadena con formato '12','34','56'?

Como podemos ver, tanto to_s como inspect devuelven corchetes adicionales, espacios y usan comillas dobles (") en lugar de comillas simples (')

Para lograrlo, podríamos combinar join y map para convertir un array en una cadena con un formato de salida personalizado.

Primero, use Array#join para agregar un delimitador entre los elementos del array.

['12', '34', '56'].join("','")

Producción :

"12','34','56"

En segundo lugar, use la interpolación de cadenas para encerrar el resultado temporal dentro de un par de comillas simples.

delimeter_added_string = ['12', '34', '56'].join("','")
result = "'#{delimeter_added_string}'"
puts result

Producción :

=> '12','34','56'

Artículo relacionado - Ruby Array

Artículo relacionado - Ruby String