Compiler-Fehler Out of Bunce Exception bei einem Char

hellobook

Mitglied
In der Zeile
Java:
if(wort[y]==vergleich[y])
bekomme ich eine out of bounce exeption, ich dacht die gibt es nur bei Arrays?
Wie kann ich das lösen?
Der komplette Quellcode:
Java:
public class GRAPH_MATRIX
{
    int anzahlKnoten;
    Knoten[]knoten;
    int[][] matrix;
    int breite = 0;
    int feldlaenge;
    boolean [] besucht;
    ZUSATZ zusatz;
    public GRAPH_MATRIX(int anzahl)
    {
        matrix = new int [anzahl][anzahl];
        besucht = new boolean [anzahl];
        knoten = new Knoten [anzahl];
        feldlaenge = anzahl;
        zusatz = new ZUSATZ(anzahl);
    }

    public void KnotenEinfuegen(String name)
    {

        if(anzahlKnoten<feldlaenge)
        {
            if(KnotenNummer(name)==-1)
            {
                knoten[anzahlKnoten] = new Knoten(name);
                matrix[anzahlKnoten][anzahlKnoten] = 0;
                for(int i=0; i<anzahlKnoten; i++)
                {
                    matrix[anzahlKnoten][i]=0;
                    matrix[i][anzahlKnoten]=0;
                }
                String nameKurz = abkürzung(name, anzahlKnoten);
                anzahlKnoten = anzahlKnoten +1;
               
                if(breite < nameKurz.length())
                {
                    breite = nameKurz.length();
                }
            }
            else
            {
                System.out.println(name +" ist bereits vorhanden.");
            }
        }

    }

    public void KanteEinfuegen(String von, String nach, int gewichtung)
    {
        int vonNummer,nachNummer;
        vonNummer =KnotenNummer(von);
        nachNummer = KnotenNummer(nach);
        if(vonNummer !=-1 && nachNummer != -1 && vonNummer != nachNummer)
        {
            matrix[vonNummer][nachNummer] = gewichtung;
            matrix[nachNummer][vonNummer] = gewichtung;
        }

    }

    public int KnotenNummer(String Name)
    {
        int knotennummer = -1;
        for(int i=0; i<anzahlKnoten;i++)
        {
            if(knoten[i].BezeichnungGeben().equals(Name) && knoten[i]!= null)
            {
                knotennummer = i;
            }                                                                        
        }
        return knotennummer;
    }

    public void Ausgeben()
    {
        String b ="";
        for(int t = 0;t<=breite;t++)
        {
            b=b+" ";
        }
        String h = "";
        for(int i =0;i<anzahlKnoten;i++)
        {
            b=b+knoten[i].BezFormatGeben(breite)+" ";
        }
        System.out.println(b);
        String f="";
        for(int y=0;y<anzahlKnoten;y++)
        {
            h=knoten[y].BezFormatGeben(breite)+" ";
            for(int g =0;g<anzahlKnoten;g++)
            {
                String str = Integer.toString(matrix[y][g]);
                f=str;
                for(int k = str.length();k<=breite;k++)
                {
                    f=f+" ";
                }
                h=h+f+" ";
                f="";
            }
            System.out.println(h);
            h="";
        }
    }

    public void tiefenAusgabe(int startNr, int zielNr, int tiefe)
    {
        String abstand = " ";
        String abstandNeu = "";
        for(int i=0; i< breite; i++)
        {
            abstand = abstand + " ";
        }
        for(int i=1; i < tiefe;i++)
        {
            abstandNeu = abstandNeu + abstand;
        }
        System.out.println(abstandNeu + knoten[startNr].BezeichnungGeben() + "----> " + knoten[zielNr].BezeichnungGeben());
    }

    public void besuchen(int kntnr)
    {
        int tiefe = 0;
        besucht[kntnr] = true;
        System.out.println(knoten[kntnr].BezeichnungGeben());
        for(int abzweignr=0; abzweignr<anzahlKnoten; abzweignr++)
        {
            if(matrix[kntnr][abzweignr]>0 && besucht[abzweignr] == false)
            {
                tiefe = tiefe +1;
                tiefenAusgabe(kntnr,abzweignr,tiefe);
                besuchen(abzweignr);
            }
        }
        tiefe = tiefe -1;
        System.out.println(knoten[kntnr].BezeichnungGeben() + "(fertig)");
    }

    public void tiefensuche(String startKnoten)
    {
        int startnr;
        startnr = KnotenNummer(startKnoten);
        if(startnr != -1)
        {
            besuchen(startnr);
            Legende();
        }
        else
        {
            System.out.println("Knoten ist nicht vorhanden.");
        }
    }

    public void WegeSuche(String StartKnoten, String ZielKnoten)
    {   int startNummer = KnotenNummer(StartKnoten);
        int zielNummer = KnotenNummer(ZielKnoten);
        if(startNummer != -1 && zielNummer != -1 && startNummer != zielNummer)
        {
            for( int i=0; i<anzahlKnoten; i++)
            {
                besucht[i] = false;
            }
            Ablaufen(startNummer, zielNummer, StartKnoten, 0);
        }

    }

    public void Ablaufen(int StartKnotenNr, int ZielKnotenNr, String Pfad, int laenge)
    {
        int neueLaenge;
        String neuerPfad;
        besucht[StartKnotenNr] = true;
        if(StartKnotenNr == ZielKnotenNr)
        {
            System.out.println(Pfad+ " ; Länge "+ laenge);
        }
        else
        {
            for(int abzweigeNr =0; abzweigeNr<anzahlKnoten;abzweigeNr++)
            {
                if( matrix[StartKnotenNr][abzweigeNr]>0 && besucht[abzweigeNr] == false)
                {
                    neuerPfad = Pfad + "/"+knoten[abzweigeNr].BezeichnungGeben();
                    neueLaenge = laenge + matrix[StartKnotenNr][abzweigeNr];
                    Ablaufen(abzweigeNr, ZielKnotenNr,neuerPfad, neueLaenge);
                }
            }
        }
        besucht[StartKnotenNr] = false;
    }

    public void Legende()
    {
        String ausgabe = "Ortskürzel: ";
        System.out.println("/n__________________________________________________________________________________");
        System.out.println("Legende:");
        System.out.println("---->: Straße nach" );
        for(int i=0; i<anzahlKnoten; i++)
        { 
            if(i%5 ==0)
            {
                System.out.println(ausgabe);
                ausgabe = knoten[i].BezeichnungGeben()+": " + abkürzung(knoten[i].BezeichnungGeben(), anzahlKnoten);
            }
            else
            {
                ausgabe = ausgabe + knoten[i].BezeichnungGeben()+": " + abkürzung(knoten[i].BezeichnungGeben(), anzahlKnoten);
            }
        }
    }
   
    public String abkürzung (String name, int anzahl)
    {
        char[] wort  = name.toCharArray();
        String  nameNeu= "";
        boolean gleich;
        if(anzahl < 1)
        {
            nameNeu = nameNeu + wort[0];
            return nameNeu;
        }
        else
        {
            for(int y = 0; y < name.length(); y++)
            {
                for(int i=1; i<anzahl;i++)
                {
                    String n = "";
                    n = n + knoten[i].BezeichnungGeben();
                    char[] vergleich =n.toCharArray();
                    if(wort[y]==vergleich[y])
                    {
                        gleich = true;
                    }
                }
                if(gleich = false)
                {
                    nameNeu = nameNeu + wort[y];
                    break;
                }
                else
                {
                    nameNeu = nameNeu + wort[y];
                }
            }
            return nameNeu;
        }
    }
}
 

DefconDev

Bekanntes Mitglied
Methoden kennst du noch nicht oder?

Das zweite Array Name in deiner Schleife ist anscheinend länger als das Array Wort dadurch entsteht diese exception.

Edit: solltest du die arrays auf die Gleichheit des Inhalts prüfen, wird == nicht verwendet sondern equals. Das funktioniert sonst nur mit einer Ausnahme wenn ich mich nicht täusche.
 

Tobse

Top Contributor
@hellobook: Bisschen offtopic: das ist eine ArrayIndexOutOfBoundsException; nicht Bunce und nicht Bounce (bunce gibts nicht, bounce heisst hüpfen). Sowas ist für erfolgreiche Kommunikation wichtig :) Ich musste den Titel dieses Threads eben erst laut aussprechen, bis ich verstanden hatte, worum es geht ;)

Zum Thema:
Eine ArrayIndexOutOfBoundsException tritt auf, wenn du auf einen Array Index zugreiffen willst, der ausserhalb des Arrays liegt (also kleiner als 0 ist oder größer als die Länge des Arrays - 1). In der Zeile

Java:
if(wort[y]==vergleich[y])

sind zwei Arrayzugriffe, also zwei mögliche Fehlerquellen. Prüfe mal den Wert der Variable y gegen die Längen der Arrays wort und vergleich bevor die Exception fliegt; dann siehst du wahrscheinlich, wo der Fehelr liegt ;)

Tipp: durch Logik kann man hier einen Arrayzugriff als Fehlerquelle ausschließen. Aber das wäre zu sehr gespoilert ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
H Erste Schritte Exception: 0 Java Basics - Anfänger-Themen 2
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Exception nur im "Debug"-Modus und jedem 3.-5. mal Ausführen Java Basics - Anfänger-Themen 3
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R "Missbrauch" von Exception zum Programmfluss Java Basics - Anfänger-Themen 1
U Exception: OutOfMemoryError Java Basics - Anfänger-Themen 11
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3
F Java exception bei der Ausführung Java Basics - Anfänger-Themen 10
J Exception für String Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben