2014-11-05 14 views
13

Ciao amici ho stringa comeSplit String con. (Dot) personaggio java androide

Android_a_b.pdf 

voglio dividerlo come Android_a_b e pdf

provo a seguente codice come

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

quando corro sopra il codice mi dà errore come

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

a String part1 = parts[0]; linea

idea di come posso risolverlo?

risposta

43

Hai bisogno di fuggire . utilizzando \

Esempio:

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

Ora sarà raggruppati per .

Split(regex) in Java

Spaccature questa stringa intorno partite del dato espressione regolare.

Questo metodo funziona come se invocando il metodo split a due argomenti con l'espressione data e un argomento limite di zero. Le stringhe finali vuote non sono quindi incluse nell'array risultante.

Tenete a mente che

Parametri: regex - la delimitazione di espressioni regolari

+0

E 'anche importante notare che i punti di errore fuori non c'è nulla nella vostra Array. Se provi ad accedere a [0] e ottieni un indice fuori limite, puoi tranquillamente pensare che ci sia qualcosa che non va nella divisione. –

+0

Esattamente. Unescaped, il simbolo "". "' Corrisponde a ogni carattere, quindi ogni carattere è un delimitatore e il risultato della divisione è costituito interamente da stringhe vuote, nessuna delle quali è inclusa nel valore restituito. –

+0

Pattern.quote renderà la tua vita più semplice: s.split (Pattern.quote (".")); (usa import java.util.regex.Pattern) –