Hallo Leute, ich habe hier folgenden Code für eine Matrix Erstellung in Java. Ich kann selber nicht an den Vorlesungen bei uns an der Uni dafür teilnehmen wegen meines Berufes, deswegen bring ich mir das selber zuhause bei.
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
import java.util.Scanner;
public class Entschlüsselung {
public static void main(String[] args) throws IOException {
BufferedReader BR=new BufferedReader(new InputStreamReader (System.in));
int Number[][]=new int[3][3];
int i,j;
String m;
System.out.println("Geben Sie die Elemente der 3x3 Matrix an :");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
m=BR.readLine();
Number[i][j]=Integer.parseInt(m); // ??
}
}
}
}
Also so wie ich das verstehe, wird ein Eingabe Fenster erstellt und dann ein neues 2Dimensionales Array Number erstellt was 3Zeilen und 3Spalten hat. Dann werden für die Eingabe jeweils die Spalten i und j in der For Schleife initialisiert. Was ich nur nicht verstehe ist die Zeile Number[j]=Integer.parseInt(m);
Also wie du schon richtig erkannt hast, wird dein Array mit den 2 For-Schleifen Werte zugewiesen.
Die erste for-Schleife geht die Zeilen durch und die Zweite die Spalten.
Somit kannst du jedes Element des Arrays ablaufen und dort Werte reinspeichern.
Wie du siehst wird ein String eingelesen: String m = BR.readLine();
Du hast aber ein Array vom typ int.
Daher musst du den String in einen Integer-Wert umwandeln.
Das machst du mit der Integer#parseInt(String m); Methode
Achso dankeschön dann wird mit der Zeile hier Number[j]=Integer.parseInt(m); quasi nur der Datentyp geändert. Dann noch eine Frage, hätte man nicht direkt das Array vom Typ Int machen können?
int meinte ich
Und was ist da jetzt der Vorteil bzw Nachteil ob man den Datentyp erst als String einliest und dann ein int daraus macht bzw. das von vornerein als int festlegt?
Naja, eine Zeichenkette ist es so oder so. Aber du kannst dich auch direkt auf den Typ festlegen, anstatt auf den "größeren". Dadurch stehen speziellere Operationen zur Verfügung und das Cast entfällt.
Aaaaaber, habe ich am Anfang auch nicht gecheckt, wieso nicht direkt machen.
Oh, sorry, ich hab gar nicht gesehen, das der Typ des Arrays bereits int ist, und nur der Name Number heißt.... das ist etwas verwirrlich.
Bezeichner eigentlich klein, Konstanten groß, und mittel- bis schwerwichtige Variablen nicht abkürzen (String m)
Eine Ausgabe zu beginn der inneren schleife wäre noch dufte (damit der Benutzer "stets" weiß, welche Komponente er gerade eintippt).
Ehm, aber was die eigentliche Frage betrifft, gecastet werden muss so oder so, also .parseInt() wird sich nicht vermieden lassen.
Oh, ein Stündchen noch.