Split, Exception - Obwohl es gehen MUSS

Bizarrus

Bekanntes Mitglied
hallo 🙂

Ich habe gerade ein kurioses ereignis.
Ich habe ein String, der ein Bildname enthält. Diesen möchte ich gerne Splitten, da ich den Namen des Bildes benötige, als auch die Extension.

Natürlich geht man da einfach hin und Splitted:
Java:
String picture = "TheIcon.png";
String[] pic    = picture.split(".");

System.out.println("Name: " + pic[0] + ", Extension: " + pic[1]);

Dennoch bekomme ich da eine Array-Exception. Angeblich würde pic[0] nicht existieren:
Exception in thread "Thread-7" java.lang.ArrayIndexOutOfBoundsException: 0

Oder sollte ich es lieber mit einem StringTokenizer machen?
 
String.split() erwartet eine RegEx, und für den RegEx-Parser bedeutet "." nun mal "jedes Zeichen". Und da der RegEx-Grouper von Java nun mal so arbeitet das der Trenner selbst NICHT im Ergebnis enthalten ist hast du auch ein leeres Array da ja jedes Zeichen der Trenner ist und damit nicht im Ergebnis enthalten ist.

Also musst du dieses "Meta-Zeichen" escapen : "\\.".

Siehe dazu hier : [japi]Pattern[/japi]
 

Zurück
Oben