2014-11-05 9 views
13

Hallo Freunde, ich habe String wieSplit String mit. (Dot) Charakter java android

Android_a_b.pdf 

ich es wie Android_a_b teilen möchten und pdf

Ich versuche folgenden Code wie

String s="Android_a_b.pdf"; 
String[] parts = s.split("."); 
String part1 = parts[0]; 
String part2 = parts[1]; 

Wenn ich über Code laufen lasse, gebe es mir einen Fehler wie

11-05 09:42:28.922: E/AndroidRuntime(8722): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 

bei String part1 = parts[0]; Linie

eine Ahnung, wie ich es lösen kann?

Antwort

43

Sie benötigen . mit \

Eg zu entkommen:

String s="Android_a_b.pdf"; 
String[] parts = s.split("\\."); // escape . 
String part1 = parts[0]; 
String part2 = parts[1]; 

Jetzt wird es von .

Split(regex) in Java

Splits dieser Schnur um Spiele in der aufgespalten gegeben regulärer Ausdruck.

Diese Methode funktioniert wie durch Aufrufen der Split-Methode mit zwei Argumenten mit der angegebene Ausdruck und ein Limit-Argument von Null. Nachgestellte leere Zeichenfolgen sind daher nicht in dem resultierenden Array enthalten.

Beachten Sie, dass

Parameter: regex - die Abgrenzung regulären Ausdruck

+0

Es ist auch wichtig, dass Ihre Fehlerpunkte zu beachten, da draußen nichts mehr im Array ist. Wenn Sie versuchen, auf [0] zuzugreifen und einen Index außerhalb des zulässigen Bereichs zu bekommen, können Sie sicher davon ausgehen, dass mit der Aufteilung etwas nicht stimmt. –

+0

Genau. Unescaped entspricht das '". "' Jedem Zeichen, so dass jedes Zeichen ein Trennzeichen ist und das Ergebnis des Split nur aus leeren Strings besteht, von denen keiner im Rückgabewert enthalten ist. –

+0

Pattern.quote wird Ihnen das Leben erleichtern: s.split (Pattern.quote (".")); (Verwenden Sie import java.util.regex.Pattern) –