Behebung der Entfernung leerer Werte bei der Java-String-Aufteilung
Bei Verwendung der split()-Methode für einen Java-String kann es zu einem unerwarteten Ergebnis kommen Dabei werden leere Werte aus dem resultierenden Array entfernt. Dies ist im folgenden Beispiel zu sehen:
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
In diesem Fall würden Sie ein Array mit 8 Werten erwarten: [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY] . Es werden jedoch nur 6 Werte zurückgegeben.
Der Grund für dieses Verhalten ist, dass die Methode split() standardmäßig abschließende leere Zeichenfolgen aus dem Ergebnisarray entfernt. Um dieses Verhalten zu deaktivieren und leere Werte einzuschließen, können Sie die überladene Version von split() verwenden:
String[] split = data.split("\|", -1);
Indem Sie den Grenzwertparameter auf einen negativen Wert (in diesem Fall -1) festlegen, weisen Sie die Methode an um das Muster so oft wie möglich anzuwenden und alle nachgestellten leeren Zeichenfolgen einzuschließen.
Dies ist möglich, weil split(regex) intern split(regex, 0) aufruft, wodurch nachgestellte leere Zeichenfolgen entfernt werden. Indem Sie einen negativen Grenzwert angeben, deaktivieren Sie dieses Verhalten effektiv und zwingen die Methode, alle Werte beizubehalten, auch leere.
Ausnahme:
Es ist wichtig zu beachten, dass das Entfernen Das Anhängen leerer Zeichenfolgen ist nur dann sinnvoll, wenn sie durch den Split-Prozess erstellt wurden. Da eine leere Zeichenfolge nicht weiter aufgeteilt werden kann, führt die Aufteilung zu einem Array mit einem einzelnen leeren Zeichenfolgenwert. Dies liegt daran, dass split() keine tatsächliche Aufteilung durchgeführt hat, sodass die leere Zeichenfolge die ursprüngliche Eingabe darstellt und keine leere Zeichenfolge, die durch die Aufteilungsoperation generiert wurde.
Das obige ist der detaillierte Inhalt vonWie kann ich verhindern, dass die Methode „split()' von Java leere Zeichenfolgen entfernt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!