ruby ​​1.9 wie man Array ohne Klammern in eine Zeichenkette umwandelt

8

Meine Frage bezieht sich darauf, wie man Array-Elemente in Ruby 1.9 in String konvertiert, ohne die Klammern und Anführungszeichen zu erhalten. Ich habe ein Array (DB-Extrakt), aus dem ich einen periodischen Bericht erstellen möchte.

%Vor%

In Ruby 1.8 hatte ich die folgende Zeile

%Vor%

Was die (gewünschte) Ausgabe produziert hat

  

Im ersten Quartal haben wir 2 Apple (s) verkauft.

Die gleichen zwei Zeilen in Ruby 1.9 erzeugen (nicht gewollt)

  

Im ersten Quartal haben wir ["2"] ["Apple"] (s) verkauft.

Nach dem Einlesen der Dokumentation Ruby 1.9.3 doc # Array # slice Ich dachte, ich könnte Code wie

produzieren %Vor%

gibt einen Laufzeitfehler zurück

  

/home/test/example.rb:450:in '+': Array kann nicht in String (TypeError) konvertiert werden

Meine aktuelle Lösung besteht darin, Klammern und Anführungszeichen mit einer temporären Zeichenfolge wie

zu entfernen %Vor%

was im Allgemeinen funktioniert.

Was wäre jedoch ein eleganterer "Ruby" Weg, wie man das macht?

    
Chris 23.10.2013, 07:03
quelle

4 Antworten

2

Verwenden Sie die Interpolation anstelle der Verkettung:

%Vor%

Es ist idiomatischer, effizienter, erfordert weniger Tipparbeit und ruft automatisch to_s für Sie auf.

    
Agis 23.10.2013, 07:14
quelle
19

Sie können die Methode .join verwenden.

Zum Beispiel:

%Vor%     
Santosh Sindham 29.05.2014 18:49
quelle
1

Und wenn Sie dies für mehr als eine Frucht tun müssen, ist der beste Weg, das Array zu transformieren und die einzelnen Anweisungen zu verwenden.

%Vor%     
hirolau 23.10.2013 08:19
quelle
0

Sie können sich das als arrayToString()

vorstellen

array = array * " "

z. B.

myArray = ["One.","_1_?! Really?!","Yes!"]

  

=> "One.","_1_?! Really?!","Yes!"

myArray = myArray * " "

  

=> "One. _1_?! Really?! Yes."

    
kayleeFrye_onDeck 06.06.2017 19:00
quelle