String bei Java auf bestimmer Länge bringen

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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:

http://java.xiruibin.com/Formatter.html

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
}
Rakasch  18.12.2011, 17:57

was machst du, wenn der übergebene String länger als 20 Zeichen ist? ;)

0
Infam0usLight  18.12.2011, 17:59
@Rakasch

Sehe grad, das wir beide den gleichen Code gepostet haben, auf die while-Schleife bezogen :D

...warst aber schneller

0
irony 
Fragesteller
 18.12.2011, 19:32

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

0

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.