OutOfBoundException

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Folgender Code scheint nicht so ganz korrekt zu sein... :roll:
Code:
String[]kombi = datenBank.diagrammDaten();
	
	
	for (int i=0; i<kombi.length; i++)
	{
		System.out.println("Kombi aus Balkendiagrammklasse: "+ kombi[i]);
	}
	  
	  
    JLabel labelbd = new JLabel();
    labelbd.setSize(500, 300);
    labelbd.setLocation(300,0);
    //c2.add(hlabel2);

    //Das Maximum der 9 zahlen wird errechnet
    //double max = Math.max(wert1,Math.max(wert2,Math.max(wert3,Math.max(wert4,Math.max(wert5, Math.max(wert6, Math.max(wert7, Math.max(wert8,wert9))))))));

    double gesamtWert = 0;
    String[] kategorie = new String[8];
    double[] betraege = new double[8];
    
    
    for (int i=0; i<kombi.length; i++)
    {
    kategorie[i]= kombi[i].substring(0,1);
    betraege[i]= Double.parseDouble(kombi[i].substring(2,kombi.length));
    
    System.out.println("Kategorieteile aus Balkendiagramm: " + kategorie[i]);
    System.out.println("Betraege aus Balkendiagramm: " + betraege[i]);
    
     gesamtWert = gesamtWert + betraege[i];	
     System.out.println(gesamtWert);
    }

denn: folgende Exception:
Code:
java.lang.StringIndexOutOfBoundsException: String index out of range: 8
	at java.lang.String.substring(Unknown Source)
	at Balkendiagramm.create(Balkendiagramm.java:39)
	at Ausgabefenster$1.actionPerformed(Ausgabefenster.java:133)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
 
B

bygones

Gast
und ?

in der fehlermeldung steht die Zeile, schau dir die an. Du greifst auf einen Index zu, der größer ist als dein String.
 

The_S

Top Contributor
Ich denke mal der Fehler liegt hier:

Code:
betraege[i]= Double.parseDouble(kombi[i].substring(2,kombi.length));

kombi hat mehr Einträge als das Element bei "i" Zeichen hat.
 
B

bygones

Gast
ah
Code:
betraege[i]= Double.parseDouble(kombi[i].substring(2,kombi.length));
ich denke du meinst
Code:
betraege[i]= Double.parseDouble(kombi[i].substring(2,kombi[i].length()));
:wink:
 

The_S

Top Contributor
Wobei du (solltest du es wirklich so wollen) hier das auch einfach so schreiben könntest

Code:
betraege[i]= Double.parseDouble(kombi[i].substring(2));
 
G

Gast

Gast
Hi deathbyaclown

na klar! Das hat mir schon weitergeholfen. werde den weiteren code auf den selben fehler überprüfe(kommt noch öfters vor)!
mal schauen was dann passiert
 
G

Gast

Gast
Hi,

hab den Code auf diesen Fehler durchsucht => alles tut jetzt.
Man muss natürlich angeben von welchem eintrag im Stringarrey man die Länge möchte!

Danke!!!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben