ArrayIndexOutOfBoundsException - dringend Hilfe gesucht

Status
Nicht offen für weitere Antworten.
U

unbekannt

Gast
Hallo, ich hab ein Programm geschrieben was ein Labyrinth aus einer Textdatei lesen soll und einen Ausweg finden soll. Nur leider hab ich das Problem mit der Ausnahme ArrayIndexOutOfBoundsException in Zeile 154, die er mir auf die Konsole ausgibt. Leider hab ich nicht so genau die Ahnung, was ich ändern muss... deswegen such ich dringend Hilfe!

Code:
mport java.io.*;
import java.util.*;

public class Labyrinth {

	// Symbole
		private static final char wand = 'X';
		private static final char gaenge = ' ';
		private static final char anfang = '+';
		private static final char weg = '*';

	// In diesem Array wird das Labyrinth abgespeichert
		private char[][] laby;
	// Hoehe und Breite des Labyrinthes
		private int hoehe;
		private int breite;
	// Startpunkt im Labyrinth
		private int startZeile;
		private int startSpalte;
		private int ausgangZeile;
		private int ausgangSpalte;

	// Initialisierung der Attribute
		public Labyrinth() {
			laby = null;
			hoehe = -1;
			breite = -1;
			startZeile = -1;
			startSpalte = -1;
			ausgangZeile = -1;
			ausgangSpalte = -1;
		}

	// nachfolgende Methoden geben die Werte der Attribute ausgangZeile u. ausgangSpalte zurueck.
		public int leseAusgangZeile() {
			return ausgangZeile;
		}

		public int leseAusgangSpalte() {
			return ausgangSpalte;
		}


	// Labyrinth aus Datei lesen
		public boolean einlesenLab(String dateiname) {
		 	char c = ' ';

 			FileReader fr = null;
 			BufferedReader br = null;

			try {
 				 fr = new FileReader(dateiname);
 				 br = new BufferedReader(fr);
 				}
 				 catch(FileNotFoundException e) {
 					System.out.println("Datei nicht gefunden!");
 				}

			try {
				 String s = br.readLine();
				 StringTokenizer st= new StringTokenizer( s );
 				 breite= Integer.parseInt( st.nextToken() );
				 s= br.readLine();
 				 st= new StringTokenizer( s );
 				 hoehe= Integer.parseInt( st.nextToken() );

 				 laby= new char[hoehe][breite];

				 for (int zeile=0; zeile < hoehe; zeile++) {
				 s= br.readLine();
				 for (int spalte=0; spalte < breite; spalte++) {
				 c= s.charAt(spalte);
				 switch(c) {
				 case anfang:
				 startSpalte = spalte;
				 startZeile = zeile;

				 laby[zeile][spalte] = gaenge;
				 break;
				 case wand:
				 case gaenge:
				 laby[zeile][spalte]= c;
				 break;
				 default:
				 System.out.println("Falsche Eingabe!");
				 return false;
				 }
				 } // ende fuer spalte
				 } // ende fuer zeile
				 }
				 catch(java.io.IOException e2) {
					System.out.println("IO Exception");
					}
					return true;
				}


		// Methode toString() gibt den Inhalt des Feldes als String zurück
			public String toString() {
				String ergebnis = " ";

				for (int zeile = 0; zeile < hoehe; zeile++) {
					for (int spalte = 0; spalte < breite; spalte++) {
						ergebnis += laby[zeile][spalte];
					}
					ergebnis += "\n";
				}
				return ergebnis;
			}

		// Starten der Suche nach dem Weg aus dem Labyrinth
			public boolean starteSuche() {
				return berechneWeg(startZeile, startSpalte);
			}

			private boolean berechneWeg(int zeile, int spalte) {
				if (laby[zeile][spalte] != weg) {
					return false;
				};

				laby[zeile][spalte] = weg;

				if(spalte == 0 || spalte == breite-1||
					zeile == 0 || zeile == hoehe-1) {
						ausgangZeile = zeile;
						ausgangSpalte = spalte;
						return true;
					};
					// Weg nach oben
					if(berechneWeg(zeile-1, spalte)) {
						return true;
					};
					// Weg nach unten
					if(berechneWeg(zeile+1, spalte)) {
						return true;
					};
					// Weg nach links
					if(berechneWeg(zeile, spalte-1)) {
						return true;
					};
					// Weg nach rechts
					if(berechneWeg(zeile, spalte+1)) {
						return true;
					};
					// kein Weg
					laby[zeile][spalte] = gaenge;
					return false;
				}

		// main-Methode
			public static void main(String[] arg) {
				Labyrinth labyrinth = new Labyrinth();

				if(!labyrinth.einlesenLab(arg[0])) {
					System.exit(1);

				if(!labyrinth.starteSuche()) {
					System.out.println("Es gibt kein Weg aus dem Labyrinth!");
				}
				else {
					System.out.println("Es wurde ein Ausgang aus dem Labyrinth gefunden!");
					System.out.println(labyrinth.leseAusgangZeile() + "Zeile");
					System.out.println(labyrinth.leseAusgangSpalte() + "Spalte");
					System.out.println(labyrinth);
				}
			}
		}
	}
 

Jango

Gesperrter Benutzer
Ohne jatzt deinen Code gelesen zu haben; du greifst auf ein Array-Index zu, dass nicht existiert.
 

Jango

Gesperrter Benutzer
Und da haben wirs auch schon. Zeile 25 - du gibst dem Array einen Wert, ohne es vorher definiert zu haben.

Arrays deklariert man so:

Code:
int[] array=new int[5];
 
U

unbekannt

Gast
funktioniert trotzdem nicht. kommt die selbe fehlermeldung
 

Der Müde Joe

Top Contributor
wie ruffst du das auf?

so
java Labyrinth

oder via ClickiBunti?

dh.
übergibst du der main Methode ein Argument?
Also das, was in Zeile 154 arg[0] grbraucht wird

so ca
java Labyrinth MyArgument
 
U

unbekannt

Gast
hab es so geändert:
char [][] laby = new char[10][10];

sicherlich wieder falsch....

mit dem aufrufen... keine ahnung im moment steh grad aufem schlauch. bin vllt schon zu müde.

kann es daran liegen das meine textdateien vllt falsch sind. sollten nämlich 2 10x10 labyrinthe sein. hab einfach da x reingesetzt. weil hab da keine ahnung wie.
 
U

unbekannt

Gast
also diesen fehler hab ich erledigt.

jetzt gibt er mir zwar das labyrinth aus, aber 'zeichnet' keinen Ausweg aus. hier mal der aktuelle code:



Code:
import java.io.*;
import java.util.*;

public class Labyrinth {

	// Symbole
		private static final char wand = 'X';
		private static final char gaenge = ' ';
		private static final char anfang = '+';
		private static final char weg = '*';

	// In diesem Array wird das Labyrinth abgespeichert
		private char[][] laby;
	// Hoehe und Breite des Labyrinthes
		private int hoehe;
		private int breite;
	// Startpunkt im Labyrinth
		private int startZeile;
		private int startSpalte;
		private int ausgangZeile;
		private int ausgangSpalte;

	// Initialisierung der Attribute
		public Labyrinth() {
			laby = null;
			hoehe = 9;
			breite = 9;
			startZeile = 4;
			startSpalte = 4;
			ausgangZeile = -1;
			ausgangSpalte = -1;
		}

	// Geben die Werte der Attribute ausgangZeile u. ausgangSpalte zurueck
		public int leseAusgangZeile() {
			return ausgangZeile;
		}

		public int leseAusgangSpalte() {
			return ausgangSpalte;
		}


	// Labyrinth aus Datei lesen
		public boolean einlesenLab() throws IOException {

			FileReader fr = null;
 			BufferedReader br = null;

			try {
				String datei = "lab1.txt";
			    fr = new FileReader(datei);
			    br = new BufferedReader(fr);
			    while(br.ready())
   				System.out.println(br.readLine());
   				}
				catch(FileNotFoundException e) {
 				System.out.println("Datei nicht gefunden!");
 				}
 				return true;
			}

		// Methode toString() gibt den Inhalt des Feldes als String zurück
			public String toString() {
				String ergebnis = " ";

				for (int zeile = 0; zeile < hoehe; zeile++) {
					for (int spalte = 0; spalte < breite; spalte++) {
						ergebnis += laby[zeile][spalte];
					}
					ergebnis += "\n";
				}
				return ergebnis;
			}

		// Starten der Suche nach dem Weg aus dem Labyrinth
			public boolean starteSuche() {
				return berechneWeg(startZeile, startSpalte);
			}

			private boolean berechneWeg(int zeile, int spalte) {
				if (laby[zeile][spalte] == wand) {
					return false;
				};

				laby[zeile][spalte] = gaenge;

				if(spalte == 0 || spalte == breite-1||
					zeile == 0 || zeile == hoehe-1) {
						ausgangZeile = zeile;
						ausgangSpalte = spalte;
						return true;
					};
					// Weg nach oben
					if(berechneWeg(zeile-1, spalte)) {
						return true;
					};
					// Weg nach unten
					if(berechneWeg(zeile+1, spalte)) {
						return true;
					};
					// Weg nach links
					if(berechneWeg(zeile, spalte-1)) {
						return true;
					};
					// Weg nach rechts
					if(berechneWeg(zeile, spalte+1)) {
						return true;
					};
					// kein Weg
					laby[zeile][spalte] = wand;
						return false;
				}

		// main-Methode
			public static void main(String[] arg) throws IOException {
				Labyrinth labyrinth = new Labyrinth();

				if(!labyrinth.einlesenLab()) {
					System.exit(1);

				if(!labyrinth.starteSuche()) {
					System.out.println("Es gibt kein Weg aus dem Labyrinth!");
				}
				else {
					System.out.println("Es wurde ein Ausgang aus dem Labyrinth gefunden!");
					System.out.println(labyrinth.leseAusgangZeile() + "Zeile");
					System.out.println(labyrinth.leseAusgangSpalte() + "Spalte");
					System.out.println(labyrinth);
				}
			}
		}
	}

es wird nix mehr von fehlern angezeigt und hab schon alles durchgesucht und nix gefunden....
 
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
N ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
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
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
A suche dringend Hilfe!! Java Basics - Anfänger-Themen 6
S ProgrammierHilfe dringend gesucht ( Icon bewegen) Java Basics - Anfänger-Themen 9
C Brauche dringend Hilfe. Umfrage mit ja und nein in Java erstellen? Java Basics - Anfänger-Themen 12
M JDK installieren Brauche dringend Hilfe Java Basics - Anfänger-Themen 2
M Dringend Experten für Scala-Play basierte Programmierung!!!! Java Basics - Anfänger-Themen 0
Z Erste Schritte Bitte helft mir dringend!! Java Basics - Anfänger-Themen 3
J Ich bitte DRINGEND um Hilfe!!! Java Basics - Anfänger-Themen 16
S Erste Schritte BlueJ-Aufgabe: Programmcode / Brauche dringend Hilfe !!! Java Basics - Anfänger-Themen 37
C Brauche dringend hilfe beim exception im code Java Basics - Anfänger-Themen 5
R GUI mit if-Verzweigung kombiniert - Illegal start of expression (Dringend) Java Basics - Anfänger-Themen 7
X DB4O Collections and Arrays, brauche dringend Hilfe! Java Basics - Anfänger-Themen 3
M Denkanstoß für Umlaufzahl dringend benötigt! Java Basics - Anfänger-Themen 9
A Hangman in Java programmieren - dringend Java Basics - Anfänger-Themen 8
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
U Dringend: Syntax error on token "else" Java Basics - Anfänger-Themen 8
R While schleife in For Schleife umwandeln -- Dringend Java Basics - Anfänger-Themen 8
S Dringend! NullPointerException Java Basics - Anfänger-Themen 4
G Problem mit Zählschleife - Brauche dringend Unterstützung. Java Basics - Anfänger-Themen 5
C Brauche dringend H!lfe :( Java Basics - Anfänger-Themen 3
T [Dringend] Classpath-Problem Java Basics - Anfänger-Themen 3
K brauch dringend Hilfe *.jar abänder Java Basics - Anfänger-Themen 2
0 Ich brauche dringend Hilfe PRIMZAHLENZWILLINGE Java Basics - Anfänger-Themen 16
T Hilfe brauche dringend hilfe Java Basics - Anfänger-Themen 3
S Blutiger Java Anfänger braucht dringend Hilfe Java Basics - Anfänger-Themen 4
K Bräuchte dringend Hilfe bei einer Schulaufgabe Java Basics - Anfänger-Themen 2
N adt liste - dringend! Java Basics - Anfänger-Themen 3
H Brauche ganz dringend HILFEEE! Math random Java Basics - Anfänger-Themen 19
S Brauche ganz dringend Hilfe Java Basics - Anfänger-Themen 4
G schaut mal dringend rein(ist das realistisch) Java Basics - Anfänger-Themen 9
N Brauche dringend hilfe! Prog mit Fehlern Java Basics - Anfänger-Themen 2
S Listen - insert - print etc. Dringend! Bitte! Java Basics - Anfänger-Themen 6
S Brauche bitte dringend Übungsbeispiele! Java Basics - Anfänger-Themen 2
B zeus und java !!!brauche dringend hilfe!!! Java Basics - Anfänger-Themen 29
F Dringend: Einbinden einer Methode in die Hauptmethode !!! Java Basics - Anfänger-Themen 43
T Brauche dringend Hilfe Java Basics - Anfänger-Themen 22
N Turtles ? dringend Java Basics - Anfänger-Themen 3
B Frage zu BigDecimal! dringend Java Basics - Anfänger-Themen 2
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben