Ich habe zwei mehrzeilige Zeichenfolgen (entspricht ASCII charts). Ich möchte sie verketten, so dass sie Seite an Seite stehen.Verketten Sie zwei mehrzeilige Zeichenfolgen Zeile für Zeile
Zum Beispiel:
s1 = "aaaa
a
aaaa"
s2 = "bbb
bbbb"
puts s1.multi_concat(s2)
#=> aaaa
#=> a bbb
#=> aaaa bbbb
Wie oben zu sehen ist, würde Ich mag sie unten ausgerichtet sein. Ich habe versucht, dieses:
class String
def multi_concat(s2)
lines.map(&:chomp).zip(s2.lines.map(&:chomp)).map(&:join).join("\n")
end
end
Aber es hat drei Probleme:
- Die beiden Blöcke sind top-ausgerichtet sind.
- Zwischen den Blöcken ist kein Abstand vorhanden.
- Kurz Linien verschieben, um den Inhalt:
#=> aaaabbb
#=> abbbb
#=> aaaa
Wie kann ich "Block verketten" sie?
Schön. Ich mag die Verwendung des Sprintf für das Padding ('+ 2'), aber beachte, dass diese Antwort die Anforderung der unteren Ausrichtung nicht löst. – Phrogz