tabelle

Status
Nicht offen für weitere Antworten.

mermen

Aktives Mitglied
hi!
ich habe folgendes problem!

wenn ich in einer tabelle alles strukturiert untereinander haben möchte z.b.:

pos name vorname strasse
1 kurt maier musterstrasse
2 hans schulze taubenweg


und es einzelne strings sind, die ich hintereinander einlese, wie mach ich das am besten???

hat da einer einen guten vorschlag???
 

Leroy42

Top Contributor
1) Meinst du eine JTable? Oder eine einfache JTextArea?
2) Von wo aus liest du die Daten ein? Aus einer Datei? Wie ist dessen Struktur? Kannst du Sie selbst definieren?

Bitte etwas ausführlicher.
 

mermen

Aktives Mitglied
naja...ich glaube Jtabellen sind grafisch...oder???...kenne die gar nicht!!!

also ich möchte eine einfache textausgabetabelle!!!

ich lese aus einer textdatei ein und möchte sie dann auch mit eventuellen weiteren eintragen zurück speichern!

ja, definieren kann ich sie selbst!
 

The_S

Top Contributor
Wenn nicht grafisch wie dann? Auf der Konsole? Oder virtuell in deinem Programm ohne dass der User davon Wind bekommt?
 

The_S

Top Contributor
Du liest zuerst alles ein, schaust was das längste Wort ist und füllst dann alle Wörter mit leerzeichen auf, bis sie die Länge des längsten Wortes haben (oder am Besten noch ein paar mehr, sonst klebt alles so aneinander). Kannste auch spaltenweiße machen.

Evtl. könnteste auch ein wenig mit tabs arbeiten, aber wenn die Worte in der Länge sehr unterschiedlich sind is das keine 100% sichere Lösung.

Was anders fällt mir jetzt spontan auch net ein :bahnhof:
 

mermen

Aktives Mitglied
kann ich denn irgentwie bestimmen, an welcher stelle der string beginnen soll?
also, das ich sage, name fängt an stelle 5 und vorname an stelle 15 an!??? ich habe bis jetzt nur bestimmt, wie lang die variablen maximal sein dürfen! also ist der name beispielsweise nicht länger als 15 zeichen! aber natürlich könnte er auch kürzer sein....
 

Leroy42

Top Contributor
1. Definier dir eine einfache CSV-Datei:

1§Karl-Otto&Schmidt&Kleiner Weg 9
2§Berta&Panislovski&Klavierstr. 42

2. Lies diese Zeilenweise ein, splitte die Strings anhand des Zeichens § und schreibe die
Daten in ein String[][]

3. Bestimme die jeweils längsten Spaltenbreiten pro Spalte

4. Gib die Daten entsprechend dieser Spaltenbreiten aus.
 

mermen

Aktives Mitglied
naja....die spaltenbreite sollte sich nicht verändern...weil ja eventuell nur ein eintrag hinzugefügt wird....

also, die tabelle soll nun keine adressliste sein, sondern eine highscore!

die überschrift gebe ich in einer einfachen zeile vor:

rang Name punkte prozent


das einzige was variable ist, ist der name....aber der soll eine breite von 15 zeichen betragen!
wenn der name natürlich kurzer ist, hab ich eine verschiebung der restlichen spalteneinträge, die darauf folgen!!!
somit wäre es doch sinvoller, wenn ich jedem spalteneintrag eine feste position vorgebe, sprich:

rang (position 1)
name (position 5)
punkte (position 25)
prozent (position 30)

oder nicht!?....

aber ich kenne keinen befehl, wo ich die position klar vorgebe!??
 

mermen

Aktives Mitglied
hmmm...ok, aber wie mach ich das am einfachsten...in einer schleife!?...

oder kann ich dem string namen direkt leerzeichen zuweisen!?...
 

Leroy42

Top Contributor
Code:
int len = name.length();
System.out.print(name);
while (len++ < 15)
  System.out.print(" ");
 

mermen

Aktives Mitglied
an sowas hab ich ja auch gedacht....aber gibts dafür nichts kürzeres...also, nicht, dass es viel wäre...aber doch ziemlich umständlich....

und es gibt keinen anderen befehl???

gibt es denn keine möglichkeit die position festzulegen.... damit würde ich mir doch das leerzeichen auffüllen sparen!!?
 

Leroy42

Top Contributor
Nein gibt es nicht!

Da Konsolenbasierte Anwendungsprogramme nicht mehr zeitgemäß
sind, machen sich die Sprachentwickler auch nicht die Mühe, so etwas
zu implementieren. Damals zu TRS-80, C64, Apple II Zeiten gab es
soetwas noch im eingebauten ROM-Basic. Heutzutage macht es keinen
Sinn mehr.

Edit: Wenn du soetwas öfter brauchst, kannst du dir ja eine Klasse basteln,
die derartiges bereitstellt.
 

The_S

Top Contributor
Mir war gerade langweilig

Code:
public class KonsolenTabelle {
	
	private String[] header = null;
	private String[][] matrix = null;
	
	public KonsolenTabelle(String[] header, String[][] matrix) {
		
		this.header = header;
		this.matrix = matrix;
	}
	
	private int maxBreite(String[] spalte) {
		
		int max = 0;
		for (String str : spalte) {
			if (str.length() > max) {
				max = str.length();
			}
		}
		return max;
	}
	
	private String[] formatLine(String[] line, int[] breiten) {
		
		for (int i = 0; i < breiten.length; i++) {
			while (line[i].length() < breiten[i] + 2) {
				line[i] += " ";
			}
		}
		return line;
	}
	
	public void printTable() {
		
		String[] curSpalte = new String[matrix[0].length + 1];
		int[] breiten  = new int[matrix.length];
		for (int i = 0; i < matrix[0].length; i++) {
			curSpalte[0] = header[i];
			for (int j = 0; j < matrix.length; j++) {
				curSpalte[j + 1] = matrix[j][i];
			}
			breiten[i] = maxBreite(curSpalte);
		}
		header = formatLine(header, breiten);
		for (int i = 0; i < matrix[0].length; i++) {
			matrix[i] = formatLine(matrix[i], breiten);
		}
		for (int i = 0; i < header.length; i++) {
			System.out.print(header[i]);
		}
		System.out.println();
		System.out.println();
		for (int i = 0; i < matrix.length; i++) {
			for (int j = 0; j < matrix[i].length; j++) {
				System.out.print(matrix[i][j]);
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {
		
		KonsolenTabelle tab = new KonsolenTabelle(new String[] {"Name", "Punkte", "Prozent"}, new String[][] {{"ich", "75", "89"}, {"Papst Johannes Paul II", "70", "85"}, {"du", "90", "95"}});
		tab.printTable();
	}
}

Das ganze ist halt ein wenig unschön und "äußerst" Fehleranfällig wenn die Eingaben nicht vorher geprüft wurden. Aber es funktioniert und ich denke darauf kannst du aufbauen

@ Leroy42 bin grad eh weng verwirrt, aber das wird langsam scho Dauerzustand bei mir :autsch:
 

mermen

Aktives Mitglied
@ hobbit
erstmal vielen dank für die mühe!!!

also...so ein ass bin ich leider noch nicht!!!!!

ich hab da mehrere sachen, die ich noch nicht verstehe....dann bleibe ich vielleicht doch lieber bei dem leerzeichen auffüllen....

eigentlich bin ich soweit, dass ich die highscore.txt einlese....
nun wollte ich eine zeile generieren, die mir den aktuellen erspielten spielstand anzeigt....
danach sollten die prozente und die gesamtzahl der gefragten fragen verglichen werden....das muß nix wildes sein....aber ich glaube mir ist dein code zu viel ....


es sei denn, du erklärst ihn mir schritt für schritt...aber ich glaube ich bräuchte alleine ein paar stunden!!!
 

mermen

Aktives Mitglied
Code:
private int maxBreite(String[] spalte) { 
       
      int max = 0; 
      for (String str : spalte) { 
         if (str.length() > max) { 
            max = str.length(); 
         } 
      } 
      return max;


was bedeutet der doppelpunkt in der for - bedingung??
 

Leroy42

Top Contributor
Na dann mal los!

Ist 'ne nette Aufgabenstellung um sich in Java (Imperatives Programmieren allgemein)
einzuarbeiten und Übung zu bekommen.
 

The_S

Top Contributor
mermen hat gesagt.:
@ hobbit
erstmal vielen dank für die mühe!!!

Kein Problem, wie gesagt mir war gerade langweilig ;)

mermen hat gesagt.:
also...so ein ass bin ich leider noch nicht!!!!!

So kompliziert ist es gar nicht, schaut nur so kompliziert aus :lol:

mermen hat gesagt.:
ich hab da mehrere sachen, die ich noch nicht verstehe....dann bleibe ich vielleicht doch lieber bei dem leerzeichen auffüllen....

Das ist die "Mit-Leerzeichen-Auffüll" Methode :bae:

mermen hat gesagt.:
es sei denn, du erklärst ihn mir schritt für schritt...aber ich glaube ich bräuchte alleine ein paar stunden!!!

ok, lässt sich machen. Sag was du nicht ganz verstehst. Bin aber net mehr so lange Online. Ansonsten gehts morgen weiter.

mermen hat gesagt.:
was bedeutet der doppelpunkt in der for - bedingung??

Das ist eine neue Schreibweise in Java 5. Du erzeugst praktisch einen String (hier "str") der nur in der Schleife zur Verfügung steht. Mit jedem Durchlauf wird ihm der nächste Wert des Arrays "spalte" zugewiesen. Wenn was unklar ist einfach fragen

mermen hat gesagt.:
bedeutet das String [][] matrix das ich ein zweidimensionales array erstelle!??...

Ja, darin speicherst du deine Werte.
 

The_S

Top Contributor
So, hab das ganze noch mal ein wenig anschaulicher Gestaltet (musste vorhin weg und war deshalb unter Zeitdruck)

Klasse die die Tabelle erstellt
Code:
class KonsolenTabelle { 
	
	// gibt die Zeichenzahl des längsten Strings in der Spalte zurück
	
	private int maxBreite(String[] spalte) { 
		 
		int max = 0; 
		for (int i = 0; i < spalte.length; i++) { 
			if (spalte[i].length() > max) { 
				max = spalte[i].length(); 
			} 
		} 
		return max; 
	} 
	
	// formatiert eine Zeile, benötigt die Zeile und die optimalen Breiten
	
	private String[] formatLine(String[] line, int[] breiten) { 
		 
		for (int i = 0; i < breiten.length; i++) { 
			while (line[i].length() < breiten[i] + 2) { 
				line[i] += " "; 
			} 
		} 
		return line; 
	} 
	
	// gibt die benötigte Breite für jede Spalte in einem Array zurück 
	
	private int[] getBreite(String[] head, String[][] matrix) {
		
		String[] curSpalte = new String[matrix[0].length + 1]; 
		int[] breiten  = new int[matrix.length]; 
		for (int i = 0; i < matrix[0].length; i++) { 
			curSpalte[0] = head[i]; 
			for (int j = 0; j < matrix.length; j++) { 
				curSpalte[j + 1] = matrix[j][i]; 
			} 
			breiten[i] = maxBreite(curSpalte); 
		} 
		return breiten;
	}
	
	// gibt die Tabelle aus
	
	private void printTable(String[] head, String[][] matrix) {
		
		for (int i = 0; i < head.length; i++) { 
			System.out.print(head[i]); 
		} 
		System.out.println(); 
		System.out.println(); 
		for (int i = 0; i < matrix.length; i++) { 
			for (int j = 0; j < matrix[i].length; j++) { 
				System.out.print(matrix[i][j]); 
			} 
			System.out.println(); 
		} 
	}
	
	/**
	 * Benötigt den Tabellenkopf und die dazugehörige Matrix, formatiert beides
	 * und gibt anschließend die komplette, formatierte Tabelle in der Standardausgabe
	 * aus
	*/
	
	public void printOut(String[] head, String[][] matrix) { 
		
		if (head.length != matrix.length) {
			System.out.println("Matrix passt nicht zum Head");
		}
		else {
			int[] breiten = getBreite(head, matrix);
			head = formatLine(head, breiten); 
			for (int i = 0; i < matrix[0].length; i++) { 
				matrix[i] = formatLine(matrix[i], breiten); 
			} 
			printTable(head, matrix);
		}
	}
	
	/**
	 * Benötigt den Tabellenkopf und die dazugehörige Matrix
	 * @return
	 * Gibt die formatierte Matrix zurück
	*/
	
	public String[][] getFormattedMatrix(String[] head, String[][] matrix) {
		
		if (head.length != matrix.length) {
			return null;
		}
		else {
			int[] breiten = getBreite(head, matrix);
			for (int i = 0; i < matrix[0].length; i++) { 
				matrix[i] = formatLine(matrix[i], breiten); 
			}
			return matrix;
		}
	}
	
	/**
	 * Benötigt den Tabellenkopf und die dazugehörige Matrix
	 * @return
	 * Gibt den formatierten Tabellenkopf zurück
	*/
	
	public String[] getFormattedHead(String[] head, String[][] matrix) {
		
		if (head.length != matrix.length) {
			return null;
		}
		else {
			int[] breiten = getBreite(head, matrix);
			head = formatLine(head, breiten); 
			return head;
		}
	}
}

Klasse die die KonsolenTabelle - Klasse benutzt
Code:
public class UseKonsolenTabelle {
	
	public static void main(String[] args) {
		
		String[] head = {"Name", "Punkte", "Prozent"};
		String[][] matrix = {{"ich", "75", "89"}, {"Papst Johannes Paul II", "70", "85"}, {"du", "90", "95"}};
		KonsolenTabelle table = new KonsolenTabelle(); 
		table.printOut(head, matrix); 
	}
}

Theoretisch könnte man die ganze KonsolenTabelle Klasse auch static machen
 

mermen

Aktives Mitglied
sorry, ich mußte dann auch weg....ab wann bist du morgen hier??? ich werde so gegen 9-10 uhr hier sein...vielleicht könnten wir uns dann nochmal über deinen lösungsvorschlag machen, weil ich doch der meinung bin, dass es eine möglichkeit ist, aber nicht das, was ich gern hätte!!

gruß
 

The_S

Top Contributor
Ich bin ab jetzt da :lol: . Was haste dir denn vorgestellt?

BTW: du musst nicht spezifisch mich ansprechen, gibt noch jede menge andere User hier, die dir helfen können (zumal ich ab morgen für ne Woche beim Skifahren bin *freu* :D )
 

mermen

Aktives Mitglied
hi!

auch wieder da!! ;-)

ja, sorry, dass ich nur dich anspreche...natürlich ist es wünschenswert, dass sich andere user auch mit einschalten, falls sie eine bessere lösung haben!!!

also, deine lösung ist ja nun folgende...dass alles spalten gleich groß sind....nun ja....dass sollen sie aber nicht...weil ich für eine spalte rang wo nur eine zahl drunter steht nicht gerade eine spaltenbreite von 20 zeichen nehmen möchte.....
dein vorschlag gibt das doch so her!!!
 

The_S

Top Contributor
Öhm, nein. Jede Spalte ist nur so breit wie unbedingt benötigt wird ???:L . Wie kommst du darauf das jede Spalte gleich groß ist?
 

mermen

Aktives Mitglied
wieso bekomme ich bei dieser berechnung ein falsches ergebnis!????

wenn ich für richtigZaehler = 3 und für insgesamt = 11


neuprozent = ((int)(((1000*richtigZaehler)/insgesamt)+0.5)/10)

3*100/11 = 27,272727272.....

möchte es so runden, dass nur eine zahl hinterm komma steht, aber richtig gerundet...also müßte hier doch 27,3 rauskommen....aber irgentwie stimmt etwas mit dem integerwert nicht, den ich zwischenzeitlich erstelle!!!????

weiß da einer weiter??[/b]
 

The_S

Top Contributor
mermen hat gesagt.:
wieso bekomme ich bei dieser berechnung ein falsches ergebnis!????

wenn ich für richtigZaehler = 3 und für insgesamt = 11


neuprozent = ((int)(((1000*richtigZaehler)/insgesamt)+0.5)/10)

3*100/11 = 27,272727272.....

möchte es so runden, dass nur eine zahl hinterm komma steht, aber richtig gerundet...also müßte hier doch 27,3 rauskommen....aber irgentwie stimmt etwas mit dem integerwert nicht, den ich zwischenzeitlich erstelle!!!????

weiß da einer weiter??[/b]

Was hat die Frage in diesem Thread zu suchen? Wir machen hier Threads pro Topic und nicht Threads pro User ...

Wenn du mit Kommazahlen rechnest benötigst du double bzw. float Variablen, sonst wird die Zahl nach dem Komma abgeschnitten.

Runden wurde schon 1000 mal besprochen, benutze bitte die Forensuche.
 

mermen

Aktives Mitglied
jo, sorry...haste ja recht!

also....ich muß doch als erstes die komplette zeile einlesen....aus meiner highscore.txt...richitg??

was mach ich dann???....ich kann dein code nicht ganz entschlüsseln!!!
 

The_S

Top Contributor
Hast du Probleme beim Einlesen deiner Daten oder weißt du nicht genau wie du meine Klasse verwenden musst?
 

mermen

Aktives Mitglied
eigentlich wollte ich die highscore einfach nur ausgeben, wobei ich vergleiche, ob der neue eintrag besser ist....wenn das der fall ist, schreibe ich erst den neuen eintrag (in einem string) und dann die restlichen einträge, außer den letzten!

ist das keine gute lösung.....

naja, der neue string ist dann ziemlich lang...aber eigentlich relativ simpel.....
 

mermen

Aktives Mitglied
einlesen ist ok....die zeilen schreibe ich dann einzeln in ein array...das klappt schon...

ich verstehe die verwendung nicht....

also, wenn ich eingelesen habe....dann kommt doch die erste methode zum einsatz...richtig!?...
 

The_S

Top Contributor
Du benötigst ein Eindimensionales Array vom Typ String, der den Kopf der Tabelle speichert. z. B. Name, Punkte, Prozent, Datum, ... und zwar so:

Code:
String[] kopf = new String[anzahlDerSpalten];
kopf[0] = "Name";
kopf[1] = "Punkte";
kopf[2] = "Prozent";
kopf[3] = "Datum";

das ist dann also mehr oder weniger die "Überschrift" deiner Tabelle. Anschließend benötigst du die Daten in einem Zweidimensionalen Array in der die Daten Zeilenweise gespeichert werden

Code:
String[][] daten = new String[AnzahlDerZeilen][AnzahlDerSpalten];
daten[0][0] = "Hans"; // 1. Zeile, 1. Spalte (Name)
daten[0][1] = "35"; // 1. Zeile 2. Spalte (Punkte)
daten[0][2] = "63%"; // 1. Zeile 3. Spalte (Prozent)
daten[0][3] = "20.02.2006"; // 1. Zeile 3. Spalte (Datum)
daten[1][0] = "Gabi"; // 2. Zeile, 1. Spalte (Name)
daten[1][1] = "50"; // 2. Zeile 2. Spalte (Punkte)
// usw. usf.

Diese beiden Variablen übergibst du dann der Methode printOut(kopf, daten);

Verstanden oder liegt das Problem wo anders?
 

mermen

Aktives Mitglied
ach, dann meintest du mit head und matrix den zeilen eintrag und die dazugehörigen spalten....jetzt kapier ichs....

aber was fragst du in der if schleife in printout ab??
 

Leroy42

Top Contributor
Code:
      if (head.length != matrix.length) { 
         System.out.println("Matrix passt nicht zum Head");

Hobbit versucht zu prüfen, ob die Anzahl der Spalten der Datenmatrix mit der
Anzahl der Spalten des Spaltenkopfes übereinstimmt.

Was ihm allerdings nicht so ganz gelingt :bae: :cool:
 

The_S

Top Contributor
mermen hat gesagt.:
ach, dann meintest du mit head und matrix den zeilen eintrag und die dazugehörigen spalten....jetzt kapier ichs....

Dafür kapier ich den Satz nicht und weiß deshalb nicht, was du denkst, was ich mache und kann dir deswegen auch nicht bestätigen bzw. nicht bestätigen dass dieser Satz von dir stimmt :autsch:

mermen hat gesagt.:
aber was fragst du in der if schleife in printout ab??

Ich überprüfe ob die Anzahl der Spalten im Kopf mit der Anzahl der Spalten in den Daten übereinstimmt. Falls dem nicht so ist, wurde mindestens eine falsche Variable übergeben und die Methode würde nicht funktionieren. Man könnte auch an dieser Stelle eine Exception werfen.

[edit]

Leroy42 hat gesagt.:
Code:
      if (head.length != matrix.length) { 
         System.out.println("Matrix passt nicht zum Head");

Hobbit versucht zu prüfen, ob die Anzahl der Spalten der Datenmatrix mit der
Anzahl der Spalten des Spaltenkopfes übereinstimmt.

Was ihm allerdings nicht so ganz gelingt :bae: :cool:

meinste? Ich find das gelingt mir eigentlich ganz gut ...
 

Leroy42

Top Contributor
Menno :(

Ich meinte natürlich Tabellenkopf und nicht Spaltenkopf :autsch:

Und das Konstrukt nennt sich if-Anweisung und nicht if-Schleife
 

Leroy42

Top Contributor
[schild=6 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Zaunpfahl[/schild]
Code:
String[][] daten = new String[AnzahlDerZeilen][AnzahlDerSpalten];
 

The_S

Top Contributor
Wie gesagt gefunden und dazu noch nen ganzen Haufen anderer Fehler :autsch: :oops: .

Das kommt davon wenn man zum Testen die gleiche Anzahl an Spalten und Zeilen verwendet ... sry besser es gleich aus
 

Leroy42

Top Contributor
@ mermen (solange Hobbit seinen Frühjahrsputz macht)

Code:
String[][] daten = new String[AnzahlDerZeilen][AnzahlDerSpalten];

Mit daten.length bekommt man immer die Anzahl der Elemente des äußersten
(am weitesten links stehenden Indizes). In diesem Fall also die Anzahl der Zeilen und
nicht die Anzahl der Spalten der Datentabelle. Und diese muß natürlich nicht mit
der Länge des Tabellenkopf-Arrays (also der Anzahl der Spalten) übereinstimmen.

Hoffe, ich habe mich einigermaßen verständlich ausgedrückt. :autsch:
 

The_S

Top Contributor
War gestern ein wenig überarbeitet :oops:

Code:
class KonsolenTabelle { 
	
	// gibt die Zeichenzahl des längsten Strings in der Spalte zurück 
	 
	private int maxBreite(String[] spalte) { 
		 
		int max = 0; 
		for (int i = 0; i < spalte.length; i++) { 
			if (spalte[i].length() > max) { 
				max = spalte[i].length(); 
			} 
		} 
		return max; 
	} 
	 
	// formatiert eine Zeile, benötigt die Zeile und die optimalen Breiten 
	 
	private String[] formatLine(String[] line, int[] breiten) { 
		 
		for (int i = 0; i < breiten.length; i++) { 
			while (line[i].length() < breiten[i] + 2) { 
				line[i] += " "; 
			} 
		} 
		return line; 
	} 
	 
	// gibt die benötigte Breite für jede Spalte in einem Array zurück 
	 
	private int[] getBreite(String[] head, String[][] matrix) { 
		 
		String[] curSpalte = new String[matrix.length + 1]; 
		int[] breiten  = new int[matrix[0].length]; 
		for (int i = 0; i < matrix[0].length; i++) { 
			curSpalte[0] = head[i]; 
			for (int j = 0; j < matrix.length; j++) { 
				curSpalte[j + 1] = matrix[j][i]; 
			} 
			breiten[i] = maxBreite(curSpalte); 
		} 
		return breiten; 
	} 
	 
	// gibt die Tabelle aus 
	 
	private void printTable(String[] head, String[][] matrix) { 
		 
		for (int i = 0; i < head.length; i++) { 
			System.out.print(head[i]); 
		} 
		System.out.println(); 
		System.out.println(); 
		for (int i = 0; i < matrix.length; i++) { 
			for (int j = 0; j < matrix[i].length; j++) { 
				System.out.print(matrix[i][j]); 
			} 
			System.out.println(); 
		} 
	} 
	 
	/** 
	 * Benötigt den Tabellenkopf und die dazugehörige Matrix, formatiert beides 
	 * und gibt anschließend die komplette, formatierte Tabelle in der Standardausgabe 
	 * aus 
	*/ 
	 
	public void printOut(String[] head, String[][] matrix) { 
		 
		if (head.length != matrix[0].length) { 
			System.out.println("Matrix passt nicht zum Head"); 
		} 
		else { 
			int[] breiten = getBreite(head, matrix); 
			head = formatLine(head, breiten); 
			for (int i = 0; i < matrix.length; i++) { 
				matrix[i] = formatLine(matrix[i], breiten); 
			} 
			printTable(head, matrix); 
		} 
	} 
	 
	/** 
	 * Benötigt den Tabellenkopf und die dazugehörige Matrix 
	 * @return 
	 * Gibt die formatierte Matrix zurück 
	*/ 
	 
	public String[][] getFormattedMatrix(String[] head, String[][] matrix) { 
		 
		if (head.length != matrix[0].length) { 
			return null; 
		} 
		else { 
			int[] breiten = getBreite(head, matrix); 
			for (int i = 0; i < matrix.length; i++) { 
				matrix[i] = formatLine(matrix[i], breiten); 
			} 
			return matrix; 
		} 
	} 
	 	
	/** 
	 * Benötigt den Tabellenkopf und die dazugehörige Matrix 
	 * @return 
	 * Gibt den formatierten Tabellenkopf zurück 
	*/ 
	 
	public String[] getFormattedHead(String[] head, String[][] matrix) { 
		 
		if (head.length != matrix[0].length) { 
			return null; 
		} 
		else { 
			int[] breiten = getBreite(head, matrix); 
			head = formatLine(head, breiten); 
			return head; 
		} 
	} 
}

Code:
public class UseKonsolenTabelle { 
	 
	public static void main(String[] args) { 
		 
		String[] head = {"Name", "Punkte", "Prozent"}; 
		String[][] matrix = {{"Horst", "75", "89"}, {"Julia", "70", "85"}, {"Nadine", "90", "95"}, {"Paul", "50", "70"}}; 
		KonsolenTabelle table = new KonsolenTabelle(); 
		table.printOut(head, matrix); 
	} 
}

müsste jetzt passen
 

mermen

Aktives Mitglied
jungs...langsam....bitte ....also wenn ich das gerade verstanden habe, war die erstellung des zweidimensionalen array falsch...richtig???
 

The_S

Top Contributor
Nein, ich hatte nen Fehler im Code :oops: . Du musst einfach den Code den ich gerade eben gepostet habe übernehmen. Ansonsten ändert sich nichts.
 

mermen

Aktives Mitglied
nun muß ich mal kurz nachschauen wie ich meine textdatei zeilenweise auslese und die zeile zerlege!!
 

The_S

Top Contributor
Zeilenweise auslesen

Code:
BufferedReader buffy = new BufferedReader(new FileReader("deine.txt"));
String eineZeile = null;
while ((eineZeile = buffy.readLine()) != null) {
    // mach was mit der Zeile
}

String an bestimmter Stelle teilen (z. B. ein Leerzeichen)

Code:
String[] amLeerzeichenGesplitet = zeile.split(" ");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W How to do best ? hierarchische Tabelle... Java Basics - Anfänger-Themen 25
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
Sonas814 ASCII-Tabelle Java Basics - Anfänger-Themen 2
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J Autovervollständigung in einer Tabelle Java Basics - Anfänger-Themen 40
RudiRüssel maximale Anzahl von Schlüsseln in einer Hash Tabelle Java Basics - Anfänger-Themen 2
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
F Tabelle - Berechnung Rang Java Basics - Anfänger-Themen 2
N Tabelle schön in der Konsole ausgeben Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
D Tabelle in der Konsole Java Basics - Anfänger-Themen 3
H Meine Tabelle befüllen in .fxml Java Basics - Anfänger-Themen 16
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
O Max Gewinn einer Tabelle Java Basics - Anfänger-Themen 12
D Apache POI Tabelle wechseln Java Basics - Anfänger-Themen 2
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
krgewb ASCII-Tabelle Java Basics - Anfänger-Themen 12
BlueFox Tabelle in der Konsole ausgeben - Probleme Java Basics - Anfänger-Themen 1
V Operatoren Was will mir die Tabelle in meinem Lehrbuch sagen? (logische Operatoren) Java Basics - Anfänger-Themen 4
J Werte aus einer Tabelle übernehmen Java Basics - Anfänger-Themen 2
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
W Befüllung einer Tabelle mit Checkbox, Trennung GUI und Model Java Basics - Anfänger-Themen 5
P ASCII-Tabelle Java Basics - Anfänger-Themen 5
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
A Hash Tabelle Element suchen Java Basics - Anfänger-Themen 1
B Vererbung In offener Hash Tabelle einfügen Java Basics - Anfänger-Themen 4
M 1x1 Tabelle Abstände korrigieren Java Basics - Anfänger-Themen 2
P Wert aus Tabelle erhalten Java Basics - Anfänger-Themen 1
U Tabelle ändern und die Inhalte speichern Java Basics - Anfänger-Themen 9
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
N Erste Schritte MySQL Tabelle in JList darstellen Java Basics - Anfänger-Themen 1
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
H "Tabelle" Java Basics - Anfänger-Themen 4
B Tabelle mit Fremdschlüssel versehen Java Basics - Anfänger-Themen 0
M Primefaces tabelle bearbeiten Java Basics - Anfänger-Themen 4
M Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 10
M Erste Schritte Tabelle aktualisieren (mal wieder) Java Basics - Anfänger-Themen 7
G JTable: Werte in Tabelle direkt ansprechen Java Basics - Anfänger-Themen 3
P Excel-Tabelle erstellen Java Basics - Anfänger-Themen 4
I Daten aus Arraylists in eine Tabelle übertragen Java Basics - Anfänger-Themen 2
B daten speichern in einer tabelle Java Basics - Anfänger-Themen 5
J Zuweisung/Tabelle Java Basics - Anfänger-Themen 6
M Werte aus Tabelle elegant zuordnen? Java Basics - Anfänger-Themen 2
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
S Abfragen wenn das ende einer Tabelle erreicht ist Java Basics - Anfänger-Themen 8
M Tabelle aktualisiert sich erst nach mausklick Java Basics - Anfänger-Themen 4
J Tabelle aus Website einlesen [nicht im Quellcode] Java Basics - Anfänger-Themen 6
J Tabelle aktuallisieren Java Basics - Anfänger-Themen 22
A Im Telefonbuch eine Tabelle ergänzen Java Basics - Anfänger-Themen 6
N Ergebnisse dynamisch in Tabelle schreiben Java Basics - Anfänger-Themen 3
F Werte aus Tabelle vergleichen/rechnen Java Basics - Anfänger-Themen 5
J Punkte hinzufügen Tabelle Java Basics - Anfänger-Themen 5
C CSV-Tabelle Java Basics - Anfänger-Themen 21
M nur 1 wert in tabelle Java Basics - Anfänger-Themen 3
M Kreuztabellenabfrage an Tabelle anfügen Java Basics - Anfänger-Themen 3
M Wert aus Tabelle lesen Java Basics - Anfänger-Themen 4
M Überschrift wird nicht angezeigt Tabelle Java Basics - Anfänger-Themen 2
O Tabelle Formatieren mit system.out.format Java Basics - Anfänger-Themen 11
M Tabelle mit Buttons Java Basics - Anfänger-Themen 24
M JSON Datensätze aus Website in Tabelle Java Basics - Anfänger-Themen 17
U Drag&Drop von Tabelle in Textfeld Java Basics - Anfänger-Themen 3
D Auf Objekt in Tabelle zugreifen Java Basics - Anfänger-Themen 4
D Eclipse und Visual Editor - erzeugen einer Tabelle Java Basics - Anfänger-Themen 8
Binary.Coder JTable bzw. Tabelle in bestimmte Form überführen Java Basics - Anfänger-Themen 5
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
H JTable Überschrift der Tabelle wird nicht angezeigt Java Basics - Anfänger-Themen 5
F Aus Tabelle auslesen Java Basics - Anfänger-Themen 10
B Tabelle, Größe der Komponenten Java Basics - Anfänger-Themen 2
H ButtonGroup in Tabelle Java Basics - Anfänger-Themen 2
X Zeile in Tabelle kopieren und in andere einfügen Java Basics - Anfänger-Themen 6
X Arraylist in Tabelle Java Basics - Anfänger-Themen 18
M Tabelle mit immer sortiertem Inhalt Java Basics - Anfänger-Themen 5
R ASCII-Tabelle Java Basics - Anfänger-Themen 6
F Tabelle in anderer Klasse füllen Java Basics - Anfänger-Themen 9
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
M 2D-Array als Tabelle ausgeben ? Java Basics - Anfänger-Themen 6
M Konsole: Tabelle Ausgeben Java Basics - Anfänger-Themen 5
M Sortierte Tabelle in Datei schreiben Java Basics - Anfänger-Themen 5
A Leere Fläche einer Tabelle umfärben Java Basics - Anfänger-Themen 3
J Tabelle in Fenster anzeigen Java Basics - Anfänger-Themen 12
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
M Einfügen von Daten in eine Tabelle Java Basics - Anfänger-Themen 9
J Java Ein mal Eins Tabelle Java Basics - Anfänger-Themen 11
G POI: Zelle aus einer Tabelle kopieren und in einr anderen einfügen Java Basics - Anfänger-Themen 5
J Feld in Tabelle suchen Java Basics - Anfänger-Themen 8
babel Datenbank Daten direkt an die Tabelle übergeben ohne Arrays Java Basics - Anfänger-Themen 9
T Programm startet nicht wg. Tabelle? Java Basics - Anfänger-Themen 19
R Moechte Tabelle ausschreiben auf der Konsole Java Basics - Anfänger-Themen 2
S Daten aus Tabelle auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen und in Tabelle einfügen Java Basics - Anfänger-Themen 6
E Boolean wert innerhalb einer Tabelle ändern Java Basics - Anfänger-Themen 4
B zahlen verschieben tabelle Java Basics - Anfänger-Themen 2
P Zeilnumbruch vermeiden bei einer Tabelle *hilfe* Java Basics - Anfänger-Themen 11
M Daten in Tabelle setzen. Java Basics - Anfänger-Themen 6
C Tabelle sortieren (evtl. setComparator) Java Basics - Anfänger-Themen 2
T ASCII Tabelle darstellen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben