# String auf der Console rechtsbündig ausrichten



## erkan (2. Mai 2006)

Ich will ein String rechsbündig darstellen .Wie geht es eigentlich? Weiss jemand was?

Danke


----------



## norman (2. Mai 2006)

wo? auf der konsole?


----------



## dR.LoL (2. Mai 2006)

Wenn du normans frage mit NEIN beantwortest...

Layoutmanager verwendet ^_^


----------



## L-ectron-X (2. Mai 2006)

Und das kann u.U. nicht ausreichen.


----------



## erkan (3. Mai 2006)

Ich will z.B. String k = "erkan" auf der Konsole oder in der Datei rechtsbündig dargestellt wird. In c++ gibt z.B. das Zeichen \t dafür.

Danke


----------



## byte (3. Mai 2006)

Das geht so viel ich weiss nicht auf der Konsole. Du kannst aber auch in Java \t verwenden, ist ein Tabulator.


----------



## bygones (3. Mai 2006)

\t ist einfach der tabulator und kein befehl für rechtsbündigkeit....
du kannst es auch mal mit printf probieren - solltest du ja aus c++ kennen


----------



## L-ectron-X (3. Mai 2006)

Hier mal eine Klasse, deren Methoden in der Lage sind, den ihnen übergebenen Text auf der Console auszurichten:

```
public class ConsoleAlign {
   private StringBuilder builder;
   private final int LENGTH_OF_LINE = 80; //Zeilenlänge
   
   public ConsoleAlign() {
      builder = new StringBuilder();
      builder.setLength(LENGTH_OF_LINE);
   }
   
   /** Rechtsbündige Ausrichtung. */
   public String alignRight(String text) {
      builder.replace(LENGTH_OF_LINE - text.length(), LENGTH_OF_LINE, text);
      return builder.toString();
   }
   
   /** Mittige Ausrichtung */
   public String alignMiddle(String text) {
      int start = (LENGTH_OF_LINE/2) - (text.length()/2);
      builder.replace(start, start + text.length(), text);
      return builder.toString();
   }
}
```
Das funktioniert auf jeden Fall unter Windows, dort ist die Console 80 Zeichen breit. Wie das unter Linux etc. ist weiß ich nicht. Aber in dieser Hinsicht lässt sich die Klasse ganz leicht anpassen.

*Topic angepasst*


----------



## byte (3. Mai 2006)

Schön gemacht, nur da man eben nie die wirkliche Zeilenlänge kennt (kann man auch in Windows einfach ändern), erfüllt es nicht ganz den Zweck.


----------



## L-ectron-X (3. Mai 2006)

Stimmt... ???:L 
Mir fallen da erst mal nur "dirty tricks" ein, um die aktuell eingestellte Zeilenlänge der Console zu ermitteln.


----------



## Illuvatar (3. Mai 2006)

Also mit System.out.printf müsste man doch rechtsbündige Ausgaben hinkriegen, ohne solche "hacks" wie von Lex vorgeschlagen? ???:L


----------

