Teilen eines Arrays

arhzz

Bekanntes Mitglied
Hallo! Also ich versuche so ein kleines program zu schreiben, das ein array nimmt (lange 10) und es in zwei teil aufteilt und in 2 neue arrays speichert.

Java:
public class test {
    public static void main(String[] args) {
        
        int[] array = {58,24,13,15,63,9,8,81,1,78};
        
        Out.println(java.util.Arrays.toString(array));
        
        int[] firstArray= new int[array.length/2];
        
        for(int i = 0; i<array.length/2; i++) {
            firstArray[i] = array[i];
        }
        Out.println(java.util.Arrays.toString(firstArray));
        
        int[] secondArray = new int[array.length/2];
        
        for(int i = array.length/2; i<array.length; i++) {
            secondArray[i] = array[i];
        }
        
        Out.println(java.util.Arrays.toString(secondArray));
    }
}

Also wenn ich den programm teste bekome ich ein "Index 5 out of bound for length 5" exception. Also habe ich versuch die lange des zweiten array zu anderen (habe array.length probiert) um zu sehen ob es dann funktioniren werde.Es funktioniert aber wie erwartet uberschriebt es 10 zahlen( 0 0 0 0 0 aus ersten array auch). Ich habe auch versuch den Array von hinten zu lesen, und dann von hinten zu mitte zu gehen, aber der selbe error (nur dieses mal Index 9 out of bound). Also ein bisschen hilfe wurde gut kommen.

Danke!
 
Versuchs mal so:
Java:
    int[] original = new int [13];
    int[] a = new int[3];
    int[] b = new int[10];

    System.arraycopy(original, 0, a, 0, 3);
    System.arraycopy(original, 3, b, 0, 10);
 
Oder so:

Java:
int[] original = new int[300];
int[] a = Arrays.copyOfRange(original, 0, original.length/2);
...
 
"Index 5 out of bound for length 5" - der Index an Position 5 deines Arrays ist 4 denn es wird ja bei 0 angefangen zu zählen! 0,1,2,3,4 bei 5 knallt's!
Java:
for (int i = array.length / 2; i < array.length; i++) {
    secondArray[i - 5] = array[i];
}
 
Zuletzt bearbeitet:
"Index 5 out of bound for length 5" - der Index an Position 5 deines Arrays ist 4 denn es wird ja bei 0 angefangen zu zählen! 0,1,2,3,4 bei 5 knallt's!
Java:
for (int i = array.length / 2; i < array.length; i++) {
    secondArray[i - 5] = array[i];
}
Ja eigentlich wollte ich es ohne methoden schaffen, aber ich verstehe den Index fehler jetzt danke!
 

Neue Themen


Zurück
Oben