ArrayIndexOutOfBoundsException

Status
Nicht offen für weitere Antworten.

NataLi

Mitglied
Hallo Leute,
mein Programm liest aus einer Datei die Entfernungsmatrix ein.
Dann sollen nach einer Formel die Werte aus dieser Matrix einer Variable(bla9) zugewiesen werden und ausgegeben.
Aber mittendrin bricht das Programm ab...
Und ich weiss nicht warum.
Hat jemand eine Idee?
Code:
import java.util.Scanner;
import java.io.*;
import java.util.*;


class Savings {
	public static void main(String [] args)throws IOException {
		
	int tourlength = 0;
	int loadingcapacity=0;
	int j=0;
	String line;
	

	//count number of places in list
	Scanner readplaces = new Scanner(new File("Eingabe2.txt"));	
	int nplaces=-2;
	while (readplaces.hasNextLine()){
		line=readplaces.nextLine(); nplaces++;
	}
	String [] [] tours = new String [nplaces][(nplaces+1)];
	
	//Entfernungsmatrix, ausgehend aus der String Matrix
	int [][] array = new int[nplaces][nplaces+1];
	readplaces.close();
	
	
	//read max tourlength and max loadingcapacity from txt file
	Scanner read = new Scanner(new File("Eingabe2.txt"));	

	tourlength = Integer.parseInt(read.nextLine());
	loadingcapacity = Integer.parseInt(read.nextLine());
	System.out.println("max tourlength: "+tourlength);
	System.out.println("max loadingcapacity: "+loadingcapacity+"\n");
	
	//read tourinformation from next lines
	while (read.hasNextLine()){
		line = read.nextLine();
		String [] sline = line.split(",");
		for(int i=1; i<sline.length;i++) {
			if (i==1) {	tours[j][(i-1)] = sline[i];array[j][(i-1)]=Integer.valueOf(sline[i]);}
			else	{tours[j][(i-1+j)] = sline[i];array[j][(i-1+j)]=Integer.valueOf(sline[i]);}
		}
	j++;
	}
	
	//print out matrix
	System.out.print("Ort\tMenge");
	for(int i=2;i<=nplaces;i++){
		System.out.print("\tDist"+i);
	}
	
	// Ausgabe der Entfertungsmatrix ( als Integer), die wir eingelesen haben.
	
	System.out.print("\tDepot\n\n");
		
	for (int i=0; i < array.length; i++){
		System.out.print("Ort"+(i+1)+"\t");
			for (int k=0; k < array[0].length; k++){
			if (array[i][k]==0) {System.out.print("-\t");}
			else {System.out.print(array[i][k]+"\t");}
			}		
			System.out.println("");	}
		
	ArrayList <Integer> liste = new ArrayList<Integer>();	

	//Berechung des Savings
	
		int l=0;
		int v=1;
		for(int k=0;k<(array.length-1);k++){	
		for(int d=0;d<(array.length-2);d++){
		int bla9= array[l][array.length]+array[v][array.length]-array[l][v];
		
		v++;
		
		System.out.print(bla9+"\t");}
		System.out.println();
		l++;v=l+1;
	  }			
	}
}
Und hier ist die einzulesene Textdatei:
Code:
200
10
a,3,60,48,32,25,15,10,40
b,4,48,35,25,26,16,35
c,2,30,32,31,23,28
d,5,26,38,29,25
e,4,32,26,10
f,4,34,10
g,5,25
 
S

SlaterB

Gast
> Hat jemand eine Idee?

es liegt an der Exception,
schau sie dir genauer an, nenne vor allem die Zeilennummer usw

analysiere die entsprechende Zeile, welche Arrays werden bearbeitet, wie lang sind sie?
was sind die aktuellen Indexe wie i, j usw. (System.out.println() oder Debugger)?

du wirst sehen, dass irgendein Index zu groß ist,
überlege, ob die Indexgröße und die Arraygröße zu diesem Zeitpunkt stimmen, wovon sie abhängen usw.,

eins der beiden (Array-Größe oder Index) muss ja falsch sein

----

wichtiger Tipp: mit einer kleinen Datei anfangen, deine hat wenigestens noch nicht 100te Einträge,
aber was bei 7 Einträgen falsch läuft geht meist genauso bei 3-6 Einträgen schief,
fange klein mit 1, 2, 3 usw. an, bis zum ersten Mal ein Fehler auftritt

einstellige Zahlen sind sicher auch leichter zu verfolgen
 

NataLi

Mitglied
Die Nummer von der Exception ist 7.
Das komische ist, dass mein Programm mittendrin abbricht..
mit der o.g. fehlermeldung.Das heisst es läuft bis ca. Mitte und dann gibt es einen Abbruch....
 

Schandro

Top Contributor
Warum postest du nicht einfach die komplette Fehlermeldung?

(aus der Eingabeaufforderung kann man übrigens auch rauskopieren, einfach markieren und Enter drücken)
 

NataLi

Mitglied
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at Savings.main<Savings.java:84>

jetzt weiss ich dass der Fehler in der Zeile 84 liegt...

Aber wo ist der Fehler drin?
 

anfänger15

Bekanntes Mitglied
wo ist der Fehler in dem von dir geposteten Code? Vermutlich Zeile 74, oder?

zerleg mal die lange Zeile und lass dir die Werte für l un v ausgeben.

vermutlich liegt es aber an dem hier

Code:
v=l+1;

denn du erhöhst zuerst l und v um 1 und dann übergibst du den Wert von l+1 v. Dies überschreitet vermutlich die Grenze des Arrays.
Nur ne Vermutung.
 

André Uhres

Top Contributor
Code:
       //Berechung des Savings

        int l = 0;
        int v = 1;
        for (int k = 0; k < (array.length - 1); k++) {
            for (int d = 0; d < (array.length - 2); d++) {
                if (v == array.length) {
                    System.out.println("");
                    System.out.println("Fehler: v=" + v + "  array.length=" + array.length + " <-----------");
                    break;
                }
                int bla9 = array[l][array.length] + array[v][array.length] - array[l][v];

                v++;

                System.out.print(bla9 + "\t");
            }
            System.out.println();
            l++;
            v = l + 1;
        }
Vermutlich ist diese Bedingung der zweiten for Schleife falsch:
d < (array.length - 2)

So gibt's jedenfalls keine Exception mehr:
d < (array.length - 1 - l)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
Kumora ArrayIndexOutOfBoundsException bei einem Sortierverfahren Java Basics - Anfänger-Themen 2
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
F ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
C Erste Schritte ArrayIndexOutOfBoundsException beim Speichern im Array Java Basics - Anfänger-Themen 2
Hanschyo ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
M ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 1
R Compiler-Fehler ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
L ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 10
J Zwei Arrays zippen wirft eine ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 11
V java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
V ArrayIndexOutofBoundsException:0 Java Basics - Anfänger-Themen 0
R ArrayIndexOutofBoundsException: 10 Java Basics - Anfänger-Themen 5
P ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException -> Fehler in for-Schleife? Java Basics - Anfänger-Themen 6
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
T ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
B java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S noch ein ArrayIndexOutOfBoundsException Fehler Java Basics - Anfänger-Themen 2
R Compiler-Fehler java.lang.ArrayIndexOutOfBoundsException, warum? Java Basics - Anfänger-Themen 6
O ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
J "ArrayIndexOutOfBoundsException", finde den Fehler schlicht nicht Java Basics - Anfänger-Themen 6
A ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 20
T ArrayIndexOutOfBoundsException - Problem mit Array-Größe Java Basics - Anfänger-Themen 4
C ArrayIndexOutOfBoundsException bei meinem ersten objektiorientierten Programm Java Basics - Anfänger-Themen 4
A parseDouble - ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
A ArrayIndexOutOfBoundsException - woher kommt er?! Java Basics - Anfänger-Themen 4
J AWT-EventQueue: ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 6
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
K ArrayIndexOutOfBoundsException: 0 Java Basics - Anfänger-Themen 4
Luk10 ArrayIndexOutOfBoundsException .... Java Basics - Anfänger-Themen 2
X Probleme mit ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
B Fehlermeldung: "ArrayIndexOutOfBoundsException"??? Java Basics - Anfänger-Themen 3
H java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 Java Basics - Anfänger-Themen 5
U ArrayIndexOutOfBoundsException - dringend Hilfe gesucht Java Basics - Anfänger-Themen 8
S java.lang.ArrayIndexOutOfBoundsException: 5 nur wieso? Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException ? Matrizenrechnung. Java Basics - Anfänger-Themen 3
B ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
T ArrayIndexOutOfBoundsException finde den Auslöser nicht Java Basics - Anfänger-Themen 5
G ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 11
V java.lang.ArrayIndexOutOfBoundsException: Java Basics - Anfänger-Themen 3
E 2 Prob.:"ArrayIndexOutOfBoundsException" & do- Java Basics - Anfänger-Themen 2
Z Warum habe ich eine ArrayIndexOutOfBoundsException? Java Basics - Anfänger-Themen 2
N ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
N ArrayIndexOutOfBoundsException...... Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben