Wie man Ruby String zu n Zeichen erzwingt
Wie Kraft, Ruby string-variable Ausgabe mit puts
zu n Zeichen, so dass, wenn die variable mehr, wird es abgeschnitten, wenn Sie kürzer, wird Sie erweitert durch folgende oder führende Leerzeichen?
Gibt es einige standard-Verfahren, dies zu tun?
InformationsquelleAutor der Frage Paul | 2013-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ruby unterstützt die Verwendung von format-strings, wie viele andere Sprachen:
Wenn Sie wollen-pad auf der rechten Seite, verwenden Sie ein
-
im format-string:Könnten Sie auch
printf
odersprintf
aber ich bevorzuge die mehr generische die%
die wiesprintf
.Aus der
sprintf
docs:und:
Der zugrunde liegenden Ruby-code ist in C geschrieben, und es ist hart codiert, um die Verwendung
' '
als Füllzeichen, so dass es nicht direkt möglich, es sei denn, Sie möchten, ändern Sie die Quelle, kompilieren Sie Ihre Ruby und live mit einer einmaligen version von der Sprache. Stattdessen können Sie etwas tun:Dieser bekommt eine Menge komplizierter als eine einfache
gsub
obwohl. Oft ist es besser, passen Sie die Zeichenfolge ohne Verwendung von format-strings, wenn Sie brauchen, um zu liefern spezielle Zeichen. Format-strings sind sehr mächtig, aber Sie sind nicht völlig flexibel.Ansonsten würde ich gehen mit so etwas wie @steenslag Lösung, die die basis für Ihre eigenen Rollen. Sie verlieren die Fähigkeit zur Nutzung von format-strings und sind darauf angewiesen, Ihre Verkettung von strings oder etwas ähnliches zu bekommen, einspaltig ausgegeben, aber es wird auch funktionieren.
InformationsquelleAutor der Antwort the Tin Man
Machen eine Zeichenfolge fester Länge kürzer:
Machen eine Zeichenfolge fester Länge mehr:
Sie kombiniert werden könnten, in so etwas wie:
Wo
str_var
ist, natürlich, Ihren stringInformationsquelleAutor der Antwort MiGro
Verbindet die
slice
- Methode ([]) mitrjust
.InformationsquelleAutor der Antwort steenslag
Für einen reinen Rubin one-liner, die Sie dies tun können:
Die Ausbeute:
oder:
InformationsquelleAutor der Antwort superluminary
Wenn Sie reden über eine Methode zum abschneiden von strings würde ich check out ActionView::Helpers::TextHelper#truncate
Aus den Beispielen:
InformationsquelleAutor der Antwort Kormie