2010-10-25 25 views
123

Ruby'de tüm dizi öğelerini tek bir dizede birleştirmenin bir yolu var mı?Bir diziyi bir dizeye birleştiren Ruby

Örnek Dizisi :

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

Örnek Çıktı:

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

Döküman arkadaşınız! Array, String, Hash, vb. Yöntemlerini incelemenize yardımcı olur. –

cevap

236

Array#join yöntemi kullanın (join argüman dizeleri arasına eklemek nedir - bu durumda bir boşluk):

+1

rakamlara katılırsanız ne olur? [1,2,3] => 123'? –

+2

@ mr.musicman 'join ', tamsayılar dahil olmak üzere to_s'e yanıt veren her şeyin numaralarıyla çalışır, ancak sonuç her zaman bir dizgedir. Bir tamsayı sonucu istiyorsanız, sonuçta 'to_i' kullanabilirsiniz. – sepp2k

+0

İlk başta ['String # lines'] kullanarak çok satırlı bir dizgeyi ayırdıysanız (http://ruby-doc.org/core-2.2.0/String.html#method-i-lines) 'my_string.join (' ') '(boş dizge argümanını not al) ile birlikte tekrar bağladılar. –

16

'den biraz daha şifreli iken, diziyi bir dizeyle de çarpabilirsiniz.

@arr * " " 
+1

şifreli olmanın yanı sıra, bu hile kullanırken olası bir kusur var mı? – marcio

+4

@marcioAlmada Hata yok, sadece minimum yük. String.c'de Ruby'nin yaptığı ilk şey bir string tipini kontrol etmek ve sonra birleştirme yöntemini çağırmaktır. Ayrıca: gösteri kaynağı kayalar ile gözetlemek! Kendiniz deneyin: $ Array.instance_methods. * '($ Show-source için kısaltılmıştır) – okket