[Anfängerfrage] Tabellenausgabe auf der Console

pinsleepe

Mitglied
Hallo,
ich möchte auf der Console eine Art Tabelle anzeigen. Mit "\t" wird zwar zum nächsten Tab gegangen aber wegen der unterschiedlichen Stringlängen ist es nicht immer dieselbe Stelle. Wie kann ich erzwingen, dass sich der Rest immer an das jeweils längste Wort in der "Spalte" anpasst?

MfG,
pinsleepe
 
Was besseres als jede Spalte durchzugehen und zu schauen was die maximale Länge ist und dann die Tabelle mit String.format auszugeben fällt mir momentan nicht ein.
 
Danke für die Antwort!

Meinst du damit:
die maximale Wortlänge in einer Spalte ermitteln, Spaltenbreite festlegen (in etwa max+3), alle restlichen Worte mit Leerzeichen auf die Breite bringen?
Oder geht es eleganter?

MfG,
pinsleepe
 
mmhh also ich hab das ganz einfach gelöst

Code:
public static void main(String[] args) {
		// TODO Auto-generated method stub

		String a1 ="hallo";
		String a2 ="ich";
		String a3 ="bin";	
		
		String b1 ="eine";
		String b2 ="Tabelle";
		String b3 ="und";
		
		String c1 ="das";
		String c2 ="ist";
		String c3 ="gut";
		
		System.out.print(a1+"\t"+a2+"\t"+a3);
		System.out.println();
		System.out.print(b1+"\t"+b2+"\t"+b3);
		System.out.println();
		System.out.print(c1+"\t"+c2+"\t"+c3);
		
	}

}

Ausgabe

Code:
hallo	ich	bin
eine	Tabelle	und
das	ist	gut

-> \t ist ein tabulator so kannst du wen die wörter länger sind auch einfach 2 hintereinander machen.

Hoffe ich habs richtiug verstanden was du wolltest ;)

Gruß
 
Hallo mirkoku,
leider nicht ganz. Das Ding mit den Tabs hab ich schon und notfalls habe ich auch \t\t verwendet. Ich wollte aber eine schönere Lösung finden, wo ich nicht bei jedem Wort seine Länge einzeln betrachten muss.

Damit du verstehst was ich meine: setze
b2 = "hässliche Tabelle";
c2 = "ist auf gar keinen Fall wünschenswert oder"

Dann hast du
Code:
hallo	ich	bin
eine	hässliche Tabelle	und
das	ist auf gar keinen Fall wünschenswert oder	gut
 
Ok, ich hab's.
Ich ermittel mir die maximale Stringlänge in einer Spalte (maxLength).
Und dann... reicht einfach ;) für jeden String oldKey
Code:
String key = String.format("%-"+maxLength+"s", oldKey);
Somit wird jeder String auf die Länge von maxLength gebracht. Der Minus davor heißt, dass die Leerzeichen hinten hinzugefügt werden (Ausrichtung zur linken Seite in der Tabelle).

Danke für Dein Hinweis, zeja!
 
Also ,

dan zähl alle deine Strings Durch mit,

Code:
int len = a1.length();

und dan vergleiche die zahlen, und von der größten her setzt du dan die anzahl der \t
fest.

Eine andere möglichkeit fällt mir so sponntan ein aber so gehts aufjedenfall auch ist halt einwenig Fleisarbeit da du viel zum tippen hast.

Gruß

edit:
ok habs zuspät gesehen so gehts natürlich auch ;)
 
Hallo,
ich bin's wieder. Kann man mit String.format irgendwie hinbekommen, dass nach einer definierten Länge immer zur neuen Zeile gegangen wird?

LG,
pinsleepe
 

Neue Beiträge

Zurück