Variablen String[] Array per schleife in int[] einlesen

Spytrycer

Mitglied
Folgendes problem:

Ich habe eine Externe Datei, in der ich werte speichere.
Ich speicher sie in folgendem Format:
1_2_3_4...

Diese lese ich dann in ein Stringarray folgendermassen aus:
Java:
FileReader fr = null;
       

        try
        {
           String fileName="Ressources/Systems/System_1/system_1_planets.txt";
           fr = new FileReader(fileName);
           StringBuffer sb1 = new StringBuffer();
           int ch;
           while( (ch=fr.read()) != -1 )
              sb1.append((char)ch);

           String string = sb1.toString();
          
           array = string.split("_");
        }
        catch(IOException ex)
        {
           System.out.println(ex);
        }
        finally
        {
           try
           {
             if(fr!=null) fr.close();
           }
           catch(Exception ex)
           {
           }
        }

Da ich aber diese Arraywerte auf mehrere Arrays verteilen will, da jede gruppe von 4 werten hintereinander Daten fuer ein bestimmtes Objekt angibt, versuche ich es folgendermassen auszuslesen:

(overallcount ist die anzahl an objekten die ich haben will)
(maxvars ist die anzahl an variablen die ich pro objekt habe)

Java:
count = 0;
maxvars = 4;
while (count <= overallcount)
{
    array_wert1[count] =   array[(count *maxvars) + 0];
    array_wert2[count] = array[(count * maxvars)+1];
    array_wert3[count] =  array[(count * maxvars)+2];
    array_wert4[count] = array[(count * maxvars)+3];
    count++;
}

Dabei bekomme ich allerdings eine NullPointerException fuer alle array[]s
Ich hab nachgeprueft, die einzelnen array[] werte die ich zuteilen will sind nicht null!
 
array[(count *maxvars) + 0];
0*4 = 0
1*4 = 4
2*4 = 8
Sind das wirklich die Indexe, die du haben willst?
da jede gruppe von 4 werten hintereinander Daten fuer ein bestimmtes Objekt angibt
Deswegen frage ich.

Wenn du immer weißt, wieviele Arrays du brauchst (denke ich mal, denn du hast ja auch speziell 4), dann kannst du sowas machen:
Java:
String[] array = {"1", "2", "3", "4", "5", "6", "7", "8"};
int maxvars = 4;

int[] a1 = new int[maxvars];
int[] a2 = new int[maxvars];

for(int i = 0; i < maxvars; i++){
    a1[i] = Integer.parseInt(array[i]);
    a2[i] = Integer.parseInt(array[i+maxvars]);
}
Code:
[1, 2, 3, 4]
[5, 6, 7, 8]
 
Zuletzt bearbeitet:

Zurück
Oben