Ich muss eine Zeichenfolge mit fester Länge erstellen, um eine auf Zeichenpositionen basierende Datei zu generieren. Die fehlenden Zeichen müssen mit Leerzeichen gefüllt werden.
Das Feld CITY hat beispielsweise eine feste Länge von 15 Zeichen. Für die Eingänge "Chicago" und "Rio de Janeiro" sind die Ausgänge
"Chicago" " Rio de Janeiro".
java
string
formatting
Rafael Borja
quelle
quelle
Antworten:
Seit Java 1.5 können wir die Methode java.lang.String.format (String, Object ...) verwenden und das printf-ähnliche Format verwenden.
Die Formatzeichenfolge erledigt
"%1$15s"
den Job. Wobei1$
der Argumentindexs
angibt, dass das Argument ein String ist und15
die minimale Breite des Strings darstellt. Alles zusammen :"%1$15s"
.Für eine allgemeine Methode haben wir:
Vielleicht kann jemand eine andere Formatzeichenfolge vorschlagen, um die leeren Stellen mit einem bestimmten Zeichen zu füllen?
quelle
Maybe someone can suggest another format string to fill the empty spaces with an specific character?
- Schauen Sie sich die Antwort an, die ich gegeben habe.1$
repräsentiert den Argumentindex und15
die BreiteVerwenden Sie
String.format
die Polsterung mit Leerzeichen und ersetzen Sie sie durch das gewünschte Zeichen.Druckt
000Apple
.Aktualisieren Sie eine leistungsfähigere Version (da sie nicht darauf angewiesen ist
String.format
), die kein Problem mit Leerzeichen hat (danke an Rafael Borja für den Hinweis).Druckt
00New York
.Es muss jedoch eine Prüfung hinzugefügt werden, um den Versuch zu verhindern, ein char-Array mit negativer Länge zu erstellen.
quelle
Dieser Code enthält genau die angegebene Anzahl von Zeichen. mit Leerzeichen gefüllt oder auf der rechten Seite abgeschnitten:
quelle
Sie können auch eine einfache Methode wie unten schreiben
quelle
Für das richtige Pad brauchst du
String.format("%0$-15s", str)
Das heißt, das
-
Zeichen wird "rechts" und kein-
Zeichen wird "links"siehe mein Beispiel hier
http://pastebin.com/w6Z5QhnJ
Die Eingabe muss eine Zeichenfolge und eine Zahl sein
Beispieleingabe: Google 1
quelle
Viel besser als Guava imo. Ich habe noch nie ein einziges Java-Unternehmensprojekt gesehen, das Guava verwendet, aber Apache String Utils ist unglaublich häufig.
quelle
Die Guava-Bibliothek verfügt über Strings.padStart , das genau das tut, was Sie wollen, zusammen mit vielen anderen nützlichen Dienstprogrammen.
quelle
Hier ist ein ordentlicher Trick:
quelle
Hier ist der Code mit Testfällen;):
Ich mag TDD;)
quelle
Tolle Zusammenfassung hier
quelle
Dieser Code funktioniert hervorragend.
Viel Spaß beim Codieren !!
quelle
quelle
Diese einfache Funktion funktioniert bei mir:
Aufruf:
quelle