Matrizen zeilenweise einlesen (Größe unbekannt)

Status
Nicht offen für weitere Antworten.
M

MatthiasL

Gast
Hallo hab hier ne Aufgabe zu lösen und komm da einfach net weiter:

Schreiben Sie eine Methode, welche eine Matrix von der Standardeingabe einliest
und an die aufrufende Funktion als zweidimensionales Array zurückgibt. Die einzulesende
Matrix soll dabei für jede Zeile der Matrix eine Zeile in der Eingabe erhalten, in
der jeweils die einzelnen Elemente der Zeile durch ein einzelnes Leerzeichen getrennt
wird. Das Ende einer Matrix wird durch eine Leerzeile markiert.

Ich verstehe ja vielleicht noch wie das gehen soll, wenn die Zeilen u. Spaltenzahl bestimmt ist, aber so...

Um einen Denkanstoß wäre ich sehr dankbar!
 

Nova

Bekanntes Mitglied
Die Eingabe ist z.B. "1 2 3 4 5 6 7 8 9"
Dies liest du als String von der Standardeingabe, dann nimmst du einen StringTokenizer.
Jetzt kannst du mit countTokens() (oder so ähnlich) abfragen wieviele tokens (in diesem Fall also Zahlen) es gibt.
=> damit hast du schonmal die Anzahl der Spalten

Da du die Anzahl Zeilen nicht kennst könnte man z.B. immer ein eindimensionales Array erstellen mit den Werten einer Zeile und das dann in eine LinkedList schreiben. Wenn die Eingabe dann beendet ist kann man aus der LinkedList dann ein 2-Dimensiones Array erstellen.
 
M

MatthiasL

Gast
Ok. Danke. Das habe ich jetzt mal soweit erstellt:
Code:
import java.io.*;
import java.util.StringTokenizer;
public class MatrixMult
{
	public static void main (String[] args) throws IOException
	{
	BufferedReader eingabe = new BufferedReader (new InputStreamReader(System.in));
	String str;
		
	str = eingabe.readLine();    
	StringTokenizer st = new StringTokenizer(str);
	int m;
	m = st.countTokens();
    String[] result = new String[m];
    int[]result2 = new int[m];
    int i = 0;

	while (st.hasMoreTokens()) 
	{ 
		result[i++] = st.nextToken(); 
	}
	
	for(i=0;i<m;i++)
	{
		result2[i]=Integer.parseInt(result[i]);
	}
	
	System.out.println();
	
	for(i=0;i<m;i++)
	{
		System.out.print(result2[i]);
	}
	}
}

Aber wie ich auf sie Zeilenanzahl kommen soll verstehe ich immer noch net genau. Hab mir mal ein paar Listen angesehen in google und muss zugeben dass ich mit der Syntax etwas überfordert bin.
Bitte um weitere Hilfe.
 
B

bygones

Gast
1. du brauchst keinen String array - parse doch gleich in ein int

2. prinzip von listen
Code:
List<int[]> zeilen = new LinkedList<int[]>();

// nun liest du die zeile ein und erstellst aus der einen int[]
....

zeilen.add(derIntArray);

am ende kannst du dann mit der Methode toArray deine Liste in einen 2DArray umwandlen

z.b.
Code:
int[][] all = (int[][])zeilen.toArray(new int[zeilen.size()][]);

falls dir die Methode zu komplex ist kannst du auch von Hand machen
Code:
		int[][] all = new int[zeilen.size()][];
		for ( int i = 0; i < all.length; i++ ) {
			all[i] = zeilen.get(i);
		}
 

Slava

Bekanntes Mitglied
ich wollte mich nicht zu tiff in die Materie einsteigen.

das ist eine schnelle lösung.

Code:
public class Matrixleser {


	public static void main(String[] args) throws Exception{

		double [][] matrix=Matrixleser.leseMatrix();
		for(int i=0;i<matrix.length;i++){
            for(int i2=0;i2<matrix[i].length;i2++)System.out.print(matrix[i][i2]+" ");
            System.out.println("");
        }
        

	}
	public static double[][] leseMatrix() throws Exception{
    	double[][]retar;
    	int dem1,dem2;
		String []returnarr;
		String linebuffer="";
		java.io.BufferedReader br=new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
		String str;
		while(true){

			str=br.readLine();
			if(str.equals(""))break;
			linebuffer+=";"+str;
		}
		returnarr=linebuffer.split(";");
		dem1=returnarr.length-1;
		dem2=returnarr[1].split(" ").length;
		retar=new double[dem1][dem2];
		for (int i = 1; i < returnarr.length; i++) {
    		String[] s=returnarr[i].split(" ");
			if(i==1){
                dem2=s.length;
                retar=new double[dem1][dem2];
            }
			for(int i2=0;i2< s.length;i2++) {

                retar[i-1][i2]=Double.parseDouble(s[i2]);


            }

		}
		return retar;

	}

}
[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S 2D Array Matrizen Java Basics - Anfänger-Themen 7
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
E 2 Matrizen multiplizieren - Output fehlt... Java Basics - Anfänger-Themen 5
H Erste Schritte Determinantenberechnung von Matrizen Java Basics - Anfänger-Themen 1
U Erste Schritte Aufbau eines kleinen Matrizen-Programms(MVC; OOP) Java Basics - Anfänger-Themen 20
B summe von 2 Matrizen Java Basics - Anfänger-Themen 20
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
R Matrizen nebeneinander ausgeben. Java Basics - Anfänger-Themen 1
B Matrizen Operationen Java Basics - Anfänger-Themen 7
S Bearbeitung von Matrizen Java Basics - Anfänger-Themen 14
A Matrizen aufgabe Java Basics - Anfänger-Themen 46
U Größenvergleich / Dimensionsvergleich zweier Matrizen Java Basics - Anfänger-Themen 2
N NullPointerException beim Addieren von Matrizen Java Basics - Anfänger-Themen 3
L Matrizen aufteilen Java Basics - Anfänger-Themen 3
P Matrizen zusammenfügen Java Basics - Anfänger-Themen 8
M Array Matrizen, int[][] Java Basics - Anfänger-Themen 5
K Matrizen Multiplikation Java Basics - Anfänger-Themen 3
L Mit matrizen rechnen Java Basics - Anfänger-Themen 19
J Matrizen Java Basics - Anfänger-Themen 10
C Dynamische Matrizen Java Basics - Anfänger-Themen 4
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
C große Matrizen, Performance, (Pointer?) Java Basics - Anfänger-Themen 6
M Speichern von Matrizen in Maps günstiger als in Arrays? Java Basics - Anfänger-Themen 22
J Einlesen von Werten in zwei Matrizen Java Basics - Anfänger-Themen 4
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
S ? Matrix / Matrizen ? Java Basics - Anfänger-Themen 32
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
X Textdatei: zwei-zeilenweise gleiche Zeilen rausschmeißen Java Basics - Anfänger-Themen 21
N Datei Zeilenweise einlesen, Ausgabe mehrere Arrays Java Basics - Anfänger-Themen 7
B Datei zeilenweise auslesen Java Basics - Anfänger-Themen 7
C Laufzeitverhalten beim zeilenweise durchlaufen eines 2 dimensional array Java Basics - Anfänger-Themen 6
G Datei zeilenweise lesen Java Basics - Anfänger-Themen 19
T Zeilenweise Excel-Datei mit Strings befüllen Java Basics - Anfänger-Themen 28
G Zeilenweise lesen Java Basics - Anfänger-Themen 17
D Texdatei zeilenweise einlesen Java Basics - Anfänger-Themen 3
J Array manuell vom User eingeben, Zeilenweise Java Basics - Anfänger-Themen 2
A CSV Zeilenweise einlesen und in einer HashMap speichern Java Basics - Anfänger-Themen 12
D txt-Datei zeilenweise als String einlesen Java Basics - Anfänger-Themen 2
E Zeilenweise in Dateich schreiben Java Basics - Anfänger-Themen 5
T Input/Output 20Mb Textdatei zeilenweise auslesen Java Basics - Anfänger-Themen 10
E Input/Output Linux datei in Windows zeilenweise einlesen Java Basics - Anfänger-Themen 4
B INI Zeilenweise einlesen. Java Basics - Anfänger-Themen 6
B Textdatei Zeilenweise lesen? Java Basics - Anfänger-Themen 3
E Zeilenweise einlesen Java Basics - Anfänger-Themen 5
B txt Datein zeilenweise einlesen Java Basics - Anfänger-Themen 4
fbn Datei als Ganzes lesen (nicht zeilenweise) Java Basics - Anfänger-Themen 8
H Datei zeilenweise rückwärts lesen Java Basics - Anfänger-Themen 9
B Die PHP Ausgabe Zeilenweise in Java auslesen Java Basics - Anfänger-Themen 8
N aus .txt innerhalb eines JARs Zeilenweise lesen Java Basics - Anfänger-Themen 8
-horn- CSV-file zeilenweise einlesen, was bearbeiten, nächste Zeile Java Basics - Anfänger-Themen 15
G String zeilenweise einlesen Java Basics - Anfänger-Themen 2
A Datei einlesen und splitten nur zeilenweise Java Basics - Anfänger-Themen 7
J Datei zeilenweise lesen. Java Basics - Anfänger-Themen 4
G Zeilenweise Tastatureingaben Java Basics - Anfänger-Themen 2
K Zeilenweise lesen aus einem Array Java Basics - Anfänger-Themen 12
A Zeilenweise einlesen eines Strings Java Basics - Anfänger-Themen 4
M Text Zeilenweise ein lesen und Spaltenweise ausgeben Java Basics - Anfänger-Themen 2
N Textdatei zeilenweise auslesen Java Basics - Anfänger-Themen 8
S Daten zeilenweise aus Datei einlesen Java Basics - Anfänger-Themen 7
Dilandau textdatei zeilenweise schreiben? Java Basics - Anfänger-Themen 2
P problem mit zeilenweise einlesen aus Datei Java Basics - Anfänger-Themen 6
S txt Einlesen (Zeilenweise) Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
S SeriellenPort einlesen Java Basics - Anfänger-Themen 3
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
S JSON einlesen und benutzen Java Basics - Anfänger-Themen 5
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
G JSP Textfeld einlesen Java Basics - Anfänger-Themen 2
M Einlesen > new Leser Java Basics - Anfänger-Themen 5
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
A Input/Output Mehrere Csv-Dateien einlesen Java Basics - Anfänger-Themen 2
S CSV einlesen und mit Komma trennen Java Basics - Anfänger-Themen 12
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
L Datein einlesen Java Basics - Anfänger-Themen 1
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
A Input/Output Dateien einlesen und ausgeben Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben