Tab in Stringkette einbauen

Taramsis

Bekanntes Mitglied
Hi,

ich lese ein ObjectArray in eine Stringkette ein und möchte, dass zwischen allen Elementen der verschiedenen Zeilen der selbe Abstand herscht - ein einfaches "\t" geht leider nicht:

Java:
String fuelConsumptionArraytemp ="";
for(int i=0; i< fuelConsumptionArray.length; i++){
	fuelConsumptionArraytemp += fuelConsumptionArray[i][0].toString() + "    " + 
	fuelConsumptionArray[i][1].toString() + "    " + 
	fuelConsumptionArray[i][2] + "    " + 
	fuelConsumptionArray[i][3] + "    " + 
	fuelConsumptionArray[i][4] + "\n";
}
this.consumedFuelText.setText(fuelConsumptionArraytemp);

Da die Elemente aus "fuelConsumptionArray" unterschiedlicher längen haben siehts halt z.Z. einfach doof aus!
 

tfa

Top Contributor
Du kannst String.format() oder printf() verwenden, um deine Ausgabe vernünftig zu formatieren. Damit kann man alles machen.

Java:
System.out.printf("%-20.20s", meinString);
gibt z.B. einen String linksbündig mit exakt 20 Zeichen aus, der Rest wird abgeschnitten.
Mehr Infos stehen in der Doku zu java.util.Formatter.
 

Taramsis

Bekanntes Mitglied
Danke erstmal, aber ich gebe die Dten nicht in der Konsole aus sonder über die "setText" Methode auf, die ich null einfluss habe! Diese kann aber einen String einlesen...
D.h. ich muss den String vorher sortieren!;(
 

Michael...

Top Contributor
Auch die Klasse String bietet eine Methode format(....) mit der man einen formatierten String wie bei printf erzeugen kann - wenn das das Problem war.
 

Taramsis

Bekanntes Mitglied
Im Netzt habe ich nicht nüttliches gefunden, aber das hier klappt nicht:
Java:
String fuelConsumptionArraytemp ="";

for(int i=0; i< fuelConsumptionArray.length; i++){
	
	fuelConsumptionArraytemp = String.format("%20s","%20s","%20s","%20s","%20s",  
											  fuelConsumptionArray[i][0].toString(), 
											  fuelConsumptionArray[i][1].toString(),
											  fuelConsumptionArray[i][2],
											  fuelConsumptionArray[i][3], 
		    							      fuelConsumptionArray[i][4]);
}
System.out.println(fuelConsumptionArraytemp);
this.consumedFuelText.setText(fuelConsumptionArraytemp);

Würde mich über jeden Rat freuen!
 

Michael...

Top Contributor
Falsche Verwendung der Methode format.
Richtig:
Java:
String.format("%20s %20s %20s %20s %20s", fuelConsumptionArray[i][0],  fuelConsumptionArray[i][1], ...)
Wobei der String auch noch verkettet werden muss, sonst erhält man ja nur den letzten Eintrag aus dem Array.
Besser noch wäre den String mittels StringBuilder zusammenzubauen.
 

Landei

Top Contributor
Danke erstmal, aber ich gebe die Dten nicht in der Konsole aus sonder über die "setText" Methode auf, die ich null einfluss habe!

Entschuldigung, aber da hast du sehr wohl Einfluss drauf: Du kannst schließlich von der jeweiligen Komponente erben, und dann eigene Methoden einbauen, etwa "addText". Dass du diese Methoden letztendlich wieder über setText realisieren musst, steht natürlich auf einem anderen Blatt. Alternativ kannst du nach flexibleren Komponenten im Netz suchen.
 

Ähnliche Java Themen

Neue Themen


Oben