Ich habe ein Frage über 2d arrays in Java. Nämlich muss ich Gps Kooridinaten aus einem txt file einlesen und in ein 2d Array speichern,um später mit diesem kooridanten zu arbeiten( rechenen min max und so weiter.) Dass problem ist jetzt ich bin mir nicht sicher ob ich die Koordinaten richtig einlese weil mir immer ein "ArrayOutOfBoundIndex" passiert obwohl die Koordinaten richtig aus der Konsole rauskommen.Hier ist ein screenshot von meinem Program weil ich keine Ahnung habe wie man Code Tags verwendet oder was sie überhaupt sind.
In dem Code sind fast mehr Fehlerquellen als Zeilen:
1. Du liest eine Datei ein, ergo kannst Du nicht wissen, wie viele Zeilen in der Datei stehen. Du tust aber so, als ob eine fixe Anzahl ausreichend wäre.
2. Du hast eine falsche Bedingung in der for-Schleife
3. Du splittest an einem Leerzeichen (/e bzw. Weißzeichen) und nimmst stillschweigend an, dass tatsächlich immer ein Array mit mindestens zwei Elementen entsteht (kann beabsichtigt sein)
4. Du iterierst mit i über die Zeilenindizes und greifst auf die i-te Spalte zu
Kopier mal Deinen Code in Code-Tags (die drei Punkte neben dem Smiley -> Code -> Java und ins Textfeld den Code inkl. Einrückungen kopieren) hier rein, dann kann ich Dir den Code ein wenig anpassen.
Okay kein problem, aber ich muss zuerst sagen,dass ich weis dass es Genau 30 Koordinaten sind und dass jede Zeile genau zwei Elemente hat (x,y)
z.B (43.000343 13.23123) dass 30 mal.
Java:
publicclass gps {publicstaticvoid main (String[]args){In.open("coordinates.txt");String[] zeilen =newString[30];String[] splaten =newString[2];String line;int i =0;while((line =In.readLine ())!=null){
zeilen[i]= line;Out.println(zeilen[i]);
i++;}String[] data = zeilen;float[] x =newfloat[30];float[] y =newfloat[2];for( i =0; i<data.length; i++){String s = data [i];String[] coords = s.split ("\\s+");String number1 = coords [0];String number2 = coords [1];
x[i]=Float.parseFloat(number1);
y[i]=Float.parseFloat(number2);}Out.println( x[i]);In.close ();}}
Genau wichtig für mich sind nur die Kooridinaten. Vielen dank für deine Hilfe, ich verstehe jetzt was ich falsch gemacht habe und wie ich den Program einfacher zu lesen machen kann. Falls ich noch mehr Probleme im Program habe werde ich bald züruck sein haha.
Noch einmal vielen vielen Dank!
Leichter zu lesen ist das jetzt nicht unbedingt. Ich habe im Wesentlichen nur oben im while sichergestellt, dass mehr Zeilen eingelesen werden, als im Array Platz haben und dem y dem entsprechend viel Platz gegeben.
Leichter zu lesen ist das jetzt nicht unbedingt. Ich habe im Wesentlichen nur oben im while sichergestellt, dass mehr Zeilen eingelesen werden, als im Array Platz haben und dem y dem entsprechend viel Platz gegeben.
Ja aber für einen Anfänger ist es einfacher zu verstehen. Ich programmiere in Java seit Februar und dass alles mit Arrays Strings ist mir verwierend und kann mir problematisch sein, Höffentlich schaffe ich den rest von dem Program allein.