ich habe im Rahmen einer Übungsaufgabe eine n * n Integer Matrix gemacht und diese nach dem Schema Aij = i+j+1 gebildet. Soweit so gut.
Java:
int n =5;// Integer.parseInt(JOptionPane.showInputDialog("Bitte einen Wert für n eingeben:"));int[][] matrix =newint[n][n];for(int i =0; i < matrix.length;i++){for(int j =0; j < matrix[i].length;j++){int wert =(i+1)+(j+1)+1;
matrix[i][j]=wert;}}
Die Ausgabe hatte ich statisch gelöst da die matriy Spaltenbündig ausgegeben werden soll.
Nun möchte ich das ganz Dynamisch machen mit Eingabe des Wertes n. Dazu muss ich aber auch die formatierte Ausgabe Dynamisch machen ich weiß aber nicht wie ich das %3d so erstelle das es je nach Wert unterschiedlich oft im syso steht.
Meine bisherige Idee war:
Java:
for(int i=0; i < matrix.length;i++){intvar=Integer.parseInt("3%d ");var++;System.out.print(var);}
Java:
for(int i=0; i < matrix.length;i++){intvar=Integer.parseInt("3%d ");System.out.print(var+n);}
allerdinghaut er mir dann immer bei
Java:
intvar=Integer.parseInt("3%d ");
eine NumberFormatException raus. Wie kann ich das lösen?
ist ein platzhalter der in einem String der Formatiert wird verwendet wird.
Allerdings steht das von sich aus nicht für einen int.
Was du machen kannst ist das hier:
Java:
for(int i =0; i < matrix.length;i++){String spalte ="";for(int j =0; j < matrix[i].length;j++){
spalte += matrix[i][j]+" ";}System.out.println(spalte);}
Das wäre eine Zeilenweise Ausgabe, für spaltenweise müsstest du dann nur die 2 Schleifen vertauschen.
(Für eine schönere Lösung als das + bei Strings kannst du dir mal die Klasse [JAPI]StringBuilder[/JAPI] anschauen)
Gruß
ich versteh' nicht ganz was du meinst. was spricht z.b. dagegen direkt bei der zuweisung des wertes die ausgabe zu machen?
Java:
int n =5;// Integer.parseInt(JOptionPane.showInputDialog("Bitte einen Wert für n eingeben:"));int[][] matrix =newint[n][n];for(int i =0; i < matrix.length;i++){for(int j =0; j < matrix[i].length;j++){int wert =(i+1)+(j+1)+1;
matrix[i][j]=wert;System.out.printf("%3d ", matrix[i][j]);}System.out.println();}
ungetestet, natürlich. ich arbeite nicht viel mit printf() ...
int n =8;// Integer.parseInt(JOptionPane.showInputDialog("Bitte einen Wert für n eingeben:"));int[][] matrix =newint[n][n];for(int i =0; i < matrix.length; i++){for(int j =0; j < matrix[i].length; j++){int wert =(i +1)+(j +1)+1;
matrix[i][j]= wert;System.out.printf("%5d ", wert);}System.out.println();}