2010-01-31 11 views
6

Eventuali duplicati: metodo
Java split() method strips empty strings at the end?metodo split della classe String non include trascinamento stringhe vuote

La scissione di classe String non include trascinamento stringhe vuote nell'array restituisce. Come faccio ad avere passato questa restrizione:

class TestRegex{ 
public static void main(String...args){ 
    String s = "a:b:c:";  
    String [] pieces = s.split(":"); 

    System.out.println(pieces.length); // prints 3...I want 4. 
} 
} 

risposta

16

Secondo il documentation:

Questo metodo funziona come se invocando il metodo split con due argomenti con l' data espressione e un argomento limite di zero.

Per la scissione con l'argomento limite, si dice:

Se n non è positiva, allora il modello verrà applicato il numero di volte possibile e la matrice può avere qualsiasi lunghezza . Se n è zero, il pattern verrà applicato tutte le volte possibili di , la matrice può avere qualsiasi lunghezza e le stringhe vuote finali verranno scartate.

Quindi, cercare di chiamare il metodo split con un argomento limite non positivo, in questo modo:

String[] pieces = s.split(":", -1); 
+0

Perfetto. Grazie :) – gameover