Java while Schleife optimieren

aggitron

Commander
Registriert
Jan. 2006
Beiträge
2.079
Hallo,

ich arbeite mit TOS und habe meinen Prozess durch eigenen Code ergänzt:

Code:
output_row.Column0 = input_row.Column0;
while (StringHandling.LEN(output_row.Column0) < 1) {
  output_row.Column0 = output_row.Column0 + " ";
};

Dabei wird nichts weiter gemacht als den String solange mit Blanks aufzufüllen bis eine festgelegte Stringlänge erreicht ist. Dies ist notwendig um eine feste Breite zu gewährleisten.

Nun habe ich aber 250 Column's und müsste für jede Column eine eigene Schleife erstellen, auch weil die feste Breite immer anders ist und keinem festen Schema folgt(Column0 =1; Column1=5; Column2=3 usw.).
Dennoch muss es doch möglich sein hier noch weiter zu vereinfachen, so das ich nicht gezwungen bin manuell 250 Schleifen zu erstellen?!
 
Hallo,

schachteln?

Außen: solange bis 250 erreicht sind und innen das oben gepostete.

Gruß,
d2boxSteve
 
Hallo,

ich würde die Schleife noch umbauen - bzw. in eine Funktion auslagern. Der übergebe ich den String sowie die Ziellänge, wo aufgefüllt werden muss und womit. Dann geht die Funktion her und berechnet erst einmal wieviele Zeichen sie auffüllen muss. Das wäre dann ein int und würde in die Abbruchbedingung eingebaut werden, so müsste nicht immer LEN aufgerufen werden pro Durchlauf.

Damit wäre es auch keine While-Schleife mehr, sondern eine For-Schleife...

Ich bin mir übrigens ziemlich sicher, dass es genau die beschriebene Funktion schon gibt - nur leider habe ich von Java keine Ahnung. :-)

Grüße
Thorsten
 
Hi,

würde die Schleife weglassen und einen Stringbuffer verwenden, der die Stellen automatisch auffüllt. Siehe hier. Oder gibt es eine Restriktion, warum dies nicht möglich ist?

VG,
Mad
 
Für so etwas kannst du die String.format Methode benutzen.

Code:
  // pad with " " to the right to the given length (n)
  public static String padRight(String s, int n) {
    return String.format("%1$-" + n + "s", s);
  }
// pad with " " to the left to the given length (n)
  public static String padLeft(String s, int n) {
    return String.format("%1$" + n + "s", s);
  }
  public static void main(String args[]) throws Exception {
    System.out.println("|" + padRight( Howto", 20) + "|");
// output |Howto               |
    System.out.println("|" + padLeft("Howto", 20) + "|");
// output |               Howto|
  }
 
Ok, danke euch zunächst. Werde alle Ansätze mal durchprobieren.
 
Zurück
Oben