2010-01-31 3 views
6

Mögliche Duplizieren:
Java split() method strips empty strings at the end?Split-Methode der String-Klasse enthält keine leeren Saiten Hinter

Die Split-Methode der String-Klasse sind keine leeren Zeichenfolgen in dem Array Hinter er zurückkehrt. Wie erhalte ich Vergangenheit dieser Einschränkung:

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. 
} 
} 

Antwort

16

Nach dem documentation:

Diese Methode funktioniert wie von die zweiargumentigen Split-Methode mit dem gegebenen Ausdruck und eine Grenze Argument aufruft von Null.

Für die Spaltung mit der Grenze Argumente, heißt es:

Wenn n nicht-positiv ist, dann das Muster wird so oft wie möglich und das Array kann eine beliebige Länge angewandt werden . Wenn n 0 ist, wird das Muster so oft wie möglich angewendet, das Array kann eine beliebige Länge haben, und nachfolgende leere Strings werden verworfen.

Also, versuchen Sie die Split-Methode mit einem kraft- Limit Argument zu nennen, wie folgt aus:

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

Perfect. Vielen Dank :) – gameover