2010-10-25 6 views
123

En Ruby es que hay una manera de combinar todos los elementos de la matriz en una cadena?Rubí combinación de una matriz en una cadena

Ejemplo de Array:

@arr = ['<p>Hello World</p>', '<p>This is a test</p>'] 

Ejemplo de Salida:

<p>Hello World</p><p>This is a test</p> 
+6

¡La documentación es tu amigo! Le ayudará considerablemente a estudiar los métodos de Array, String, Hash, etc. –

Respuesta

236

utiliza el método Array#join (el argumento a join es lo que para insertar entre las cuerdas - en este caso un espacio):

@arr.join(" ") 
+1

lo que si se unían dígitos? '[1,2,3] => 123'? –

+2

@ mr.musicman 'join' trabaja con enumerables de cualquier cosa que responde a' to_s', incluyendo números enteros, pero el resultado siempre será una cadena. Si desea un resultado entero, puede usar 'to_i' en el resultado. – sepp2k

+0

Si en un inicio se rompió una cadena de múltiples líneas usando [ 'Cadena # lines'] (http://ruby-doc.org/core-2.2.0/String.html#method-i-lines), que puede sensatamente lo vinculó usando 'my_string.join ('')' (observe el argumento de cadena vacía). –

16

Mientras que un poco más críptico que join, también puedes multiplicar la matriz por una cadena.

@arr * " " 
+1

además de ser críptico, ¿hay alguna falla posible al usar este truco? – marcio

+4

@marcioAlmada No hay desperfecto, solo gastos mínimos. En array.c lo primero que hace Ruby es buscar un tipo de cadena y luego llamar al método de unión. ¡También: haz palanca con las rocas de la fuente del espectáculo! Pruébelo usted mismo: '$ Array.instance_methods. *' ($ Es una abreviatura de show-source) – okket

Cuestiones relacionadas