String bei Java auf bestimmer Länge bringen
Kann mir jemand erklären, wie ich bei Java einen String auf eine bestimmte Länge bringen kann? Das heißt jeder String soll z.b. aus 20 Zeichen bestehen. Wenn der übergebene String weniger als 20 hat soll dieser mit " " d.h. mit Leerzeichen auf die Länge von 20 erweitert werden.
Wenn ich eine Abfrage der Länge mit verbundenen For schleife mit string ergebniss= ergebniss + " " funktioniert das nicht.
Würde mich über eine Antwort sehr freuen
mfg
4 Antworten
Immer diese furchtbaren Schleifen, wer braucht denn sowas? ;)
String input = "blartt"
final String formattedString = String.format("%20.20s", input)
Dann ist die Länge maximal 20 und minimal 20. Wenn du das ganze linksbündig haben willst muss noch ein - hinter das %.
Format-Strings würde ich mir bei irgendwelchen Formatierungsaufgaben (auch für Zahlen usw.) immer als Erstes anschauen; es gibt meistens eine schönere Möglichkeit als selber irgendetwas zu implementieren:
Hab das mal auf die schnelle mit einer while Schleife ausprobiert, funktioniert bei mir einwandfrei.
public static void main(String[] args)
{
String text = "abc";
System.out.println("Länge= "+text.length()); // ergibt 3
while(text.length()<20){
text = text+" ";
}
System.out.println("neue Länge= "+text.length()); // ergibt 20
}
Super danke jetzt klappt es komisch das es bei mir vorher nicht funktioniert hat naja habs mir noch mal angeguckt und es funktioniert.
vielen dank an alle für die hilfe und nächste woche dann schöne festtage
Sehe grad, das wir beide den gleichen Code gepostet haben, auf die while-Schleife bezogen :D
...warst aber schneller
Lässt sich sehr einfach mit einer while-Schleife verwirklichen.
while(text.length() < 20) {
text = text + " ";
}
ALS METHODE, DIE DU MIT UpTo("DeinString",DieLängeDieErHabenSoll) ABRUFST,
public String UpTo/Oderwieauchimmer/ (String A,int B){
if (A.length()>B) while (A.length()<B) A=A+" ";
else A=A.substring(0,20); // 0 und 20 KÖNNTEN falsch sein!
return(A);
}
ODER EINFACH:
if (A.length()>B) while (A.length()<B) A=A+" ";
else A=A.substring(0,20); // 0 und 20 KÖNNTEN falsch sein!
WOBEI A DEIN STRING UND BE SEINE SOLLLÄNGE SIND.
was machst du, wenn der übergebene String länger als 20 Zeichen ist? ;)