Gibt es eine einfache Möglichkeit, Strings in Java aufzufüllen?
Scheint wie etwas, das in einige StringUtil-ähnliche API sein sollte, aber ich kann nichts finden, die dies tut.
Gibt es eine einfache Möglichkeit, Strings in Java aufzufüllen?
Scheint wie etwas, das in einige StringUtil-ähnliche API sein sollte, aber ich kann nichts finden, die dies tut.
Seit Java 1.5, String.format()
kann verwendet werden, um eine gegebene Zeichenkette links/rechts aufzufüllen.
public static String padRight(String s, int n) {
return String.format("%-" + n + "s", s);
}
public static String padLeft(String s, int n) {
return String.format("%" + n + "s", s);
}
...
public static void main(String args[]) throws Exception {
System.out.println(padRight("Howto", 20) + "*");
System.out.println(padLeft("Howto", 20) + "*");
}
Und die Ausgabe ist:
Howto *
Howto*
Auffüllen auf 10 Zeichen:
String.format("%10s", "foo").replace(' ', '*');
String.format("%-10s", "bar").replace(' ', '*');
String.format("%10s", "longer than 10 chars").replace(' ', '*');
Ausgabe:
*******foo
bar*******
longer*than*10*chars
Anzeige von '*' für Zeichen des Passworts:
String password = "secret123";
String padded = String.format("%"+password.length()+"s", "").replace(' ', '*');
Die Ausgabe hat die gleiche Länge wie die Kennwortzeichenfolge:
secret123
*********
Apache StringUtils
hat mehrere Methoden: leftPad
, rightPad
, center
y repeat
.
Aber bitte beachten Sie, dass - wie andere bereits erwähnt und in diese Antwort - String.format()
und die Formatter
Klassen im JDK sind bessere Optionen. Verwenden Sie sie statt des Commons-Codes.
Unter Guave ist dies einfach:
Strings.padStart("string", 10, ' ');
Strings.padEnd("string", 10, ' ');
Etwas Einfaches:
Der Wert sollte eine Zeichenkette sein. Konvertieren Sie ihn in eine Zeichenkette, wenn dies nicht der Fall ist. Wie "" + 123
ou Integer.toString(123)
// let's assume value holds the String we want to pad
String value = "123";
Die Zeichenkette beginnt mit der Wertlänge char index und endet mit der Länge padded:
String padded="00000000".substring(value.length()) + value;
// now padded is "00000123"
Genauer
Polster rechts:
String padded = value + ("ABCDEFGH".substring(value.length()));
// now padded is "123DEFGH"
Polster links:
String padString = "ABCDEFGH";
String padded = (padString.substring(0, padString.length() - value.length())) + value;
// now padded is "ABCDE123"
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.