# StringIndexOutOfBoundsException



## Guest (19. Nov 2008)

Hallo leibe Forengemeinde,

an dieser Stelle bekomme ich eine StringIndexOutOfBoundsException:


```
String jahr = datum.substring(6, datum.length());
```




```
datum.length()
```
 ergibt aber eine Länge von 10, also gibt es den Index 6. Ich benötige nur den Teilstring von der 6. Stelle an bis zum Ende.

Wo habe ich da meinen Denkfehler? ???:L


----------



## The_S (19. Nov 2008)

das bei 0 das zählen angefangen wird. Wenn du von x bis Ende brauchst, kannst du das zweite Parameter aber auch einfach weglassen.


----------



## Guest (19. Nov 2008)

@ Hobbit_Im_Blutrausch

Ich weiss, dass bei 0 angefangen wird. Folgender String: 19.12.2008. Ich brauche die 2008. Dann ist die 2 die 6. Position. Ich bekomme auch einen StringIndexOutOfBoundsException, wenn ich foglendes ausführe:


```
String jahr = datum.substring(0,1);
```

Erzähl mir nicht, es gibt nicht die Position 0. Es steht definitiv etwas im String drinn, ist also <> null.


----------



## The_S (19. Nov 2008)

Ich glaube nicht, dass in deinem String auch wirklich was drinsteht. Folgendes


```
package de.test;

public class Test {
	
  public static void main(String args[]) throws Exception {
    
	String datum = "19.12.2008";
	String jahr = datum.substring(6,datum.length());
	System.out.println(jahr);
  }
}
```

funktioniert bei mir ohne Probleme.


----------



## Guest (19. Nov 2008)

Das witzige ist noch, er gibt mir den String noch richtig aus. :shock: 



> String jahr = datum.substring(6, datum.length());



Wenn ich da jetzt 





> System.out.println(jahr);


 mache, bekomme ich die Ausgabe 2008. ???:L


----------



## Guest (19. Nov 2008)

@ Hobbit_Im_Blutrausch

Also sagst Du, wenn im String nichts drinn steht, dann bekomme ich bei datum.length() auch 10 zurück? Wenn ich datum.length() mir anzeigen lasse, dann bekomme ich die Länge 10 zurück. Lasse ich mir datum anzeigen, dann bekome ich 19.12.2008 zurück.


----------



## The_S (19. Nov 2008)

Wenn ers richtig ausgibt, dann hast du doch keinen Fehler mehr - zumindest nicht an dieser Stelle.

Nein, das sage ich nicht. Wenn in einem String nichts drinsteht, dann ist die länge auch 0 bzw. wenn wirklich nichts drin steht, bekommst du ne NullPointerException.


----------



## Murray (19. Nov 2008)

Wenn das Problem noch besteht: poste mehr Code und die vollständige Fehlermeldung (Exception mit StackTrace)


----------

