\t in List-Objekt

Status
Nicht offen für weitere Antworten.

Mundschuk

Mitglied
Hallo zusammen,

ich möchte den Inhalt eines ResultSets in einem List-Objekt ausgeben.

Jetzt habe ich das eigentlich total dämliche Problem, dass die untereinander
stehenden Zeilen, die aus mehreren Spaltenwerten verkettet bestehen,
total verzogen sind.

Wenn ein Name kürzer ist als ein anderer stehen die logischerweise eben nicht
mehr untereinander.

Ich dachte, ich kann das mit einem + "\t\t" + beheben, aber statt eines
Tabulators bekomme ich dann nur ein Viereck ausgegeben... .

Kann mir jemand einen Tip geben, wie ich das trotzdem formatieren kann?

Java:
					while(rsSelect.next()) {
						lsServer.add(rsSelect.getString("ServerName")
								+ "\t      " + rsSelect.getString("InternalIP")
								+ "\t          " + rsSelect.getString("Purpose")
						);
					}

Hier mal der Übeltäter ansich.

Danke und Grüße
Mundschuk
 

musiKk

Top Contributor
Also das hängt ganz vom Ausgabemedium ab. Wenn das entsprechende Terminal (oder was auch immer) nicht mit Tabulatoren umgehen kann, dann wird es u. U. Ersatzzeichen anzeigen.

Eine Alternative ist String.format(). Die Formatanweisung [c]%10s[/c] etwa füllt von links mit Leerzeichen auf (mit -10 wird nach rechts aufgefüllt), bis die ganze Spalte zehn Zeichen lang ist.
 

Mundschuk

Mitglied
Hallo,

erstmal vielen Dank für den Hinweis.

Ich habe den Code jetzt entsprechend angepasst:

Java:
				try {
					while(rsSelect.next()) {
						lsServer.add(String.format("%2s",rsSelect.getString("ServerName"))
								+ String.format("%10s",rsSelect.getString("InternalIP"))
								+ rsSelect.getString("Purpose")
						);
					}
				}
				catch(Exception ex) {
					ex.printStackTrace();
				}

Aber die "Spalten"-Werte stehen dann immer noch nicht wirklich untereinander. Bei variablen Servernamen verspults die Aufreihung :(
 

musiKk

Top Contributor
Du musst natürlich vorher rausfinden, wie breit der breiteste Wert einer Spalte ist oder einen guten Maximalwert nehmen. Außerdem kannst Du alles gleich zusammen schreiben und musst die Strings nicht von Hand zusammenbauen:
Java:
lsServer.add(String.format("%2s | %10s | %s", rsSelect.getString("ServerName"), rsSelect.getString("InternalIP"), rsSelect.getString("Purpose"));
 

-MacNuke-

Bekanntes Mitglied
Ja, du musst dann vorher wissen, wie lang die Zeichenkette ist, wenn du solche Ausgabe undbegingt haben willst. Das würde z.B. mit:

SELECT MAX(LENGTH(ServerName)) FROM tabelle

gehen. Dann kriegst du den längsten Wert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Objekte aus DB in Strings umwandeln also von List<Objekt> in String Datenbankprogrammierung 6
Slaylen Java List Suchen mit eigenem Generischen Datentyp Datenbankprogrammierung 10
C Oracle Fehler beim list.add() Datenbankprogrammierung 5
M List aus Hibernate Query Datenbankprogrammierung 5
ARadauer Could not determine type for: java.util.List, for columns Datenbankprogrammierung 3
Z Unknown column 'xxx' in 'field list' Datenbankprogrammierung 2
tom.j85 Objekt in OneToOne Beziehung über http request anzeigen lassen Datenbankprogrammierung 3
S Mit 2 Queries ein Objekt erstellen Datenbankprogrammierung 6
I SQLite Objekt speichern einer Serialisierter Klasse Datenbankprogrammierung 1
P MySQL Historie für ein Objekt anlegen Datenbankprogrammierung 5
H JDBCODBC - Connection-Objekt Datenbankprogrammierung 3
N Java-Objekt dynamisch aus Datenbanktabelle erzeugen? Datenbankprogrammierung 4
W MySQL-Connection-Objekt übergeben Datenbankprogrammierung 2
G MySQL Zugriff auf Datenbank Objekt Datenbankprogrammierung 19
M JPA-Query - nicht das komplette Objekt Datenbankprogrammierung 4
J Derby/JavaDB NullPointerException bei VORHANDENEM EntityManager-Objekt!!! Datenbankprogrammierung 3
kirchrath Hibernate Join - angejointes Objekt wählen Datenbankprogrammierung 2
P MySQL Objekt aus BLOB auslesen Datenbankprogrammierung 3
S JPA: Objekt in Tabelle mit Composite Keys mappen (Embeddable Annotation) Datenbankprogrammierung 2
Y JPQL WHERE != Objekt Datenbankprogrammierung 10
J Datenbank: Record-Objekt Datenbankprogrammierung 2
S Java objekt in MYSQL auslesen Datenbankprogrammierung 32
M Java Objekt in Datenbank schreiben :( Datenbankprogrammierung 8
G objekt zurück setzen Datenbankprogrammierung 2
sparrow Objekt mit lazy-verbindung komplettieren Datenbankprogrammierung 13
A Fehlermeldung "Objekt bereits geschlossen" Datenbankprogrammierung 3
A JDBC-Fehler "Objekt bereits geschlossen" Datenbankprogrammierung 4
Y Hibernate - 1:1 Beziehung liefert leeres Objekt Datenbankprogrammierung 19
S Hibernate - Ein Referenziertes Objekt mit Sprichern Datenbankprogrammierung 5
P [Hibernate] Objekt laden, Id ändern und speichern? Datenbankprogrammierung 2
R Hibernate speichert nur das Basis-Objekt Datenbankprogrammierung 4
M Objekt in Datenbank speichern Datenbankprogrammierung 2
J Wie kann ich in ein OLE-Objekt reinschreiben ? Datenbankprogrammierung 2
K relationale vs. objekt-orientierte Datenbank Datenbankprogrammierung 4
L Objekt in die DB speichern und die Id zurückgeben Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben