Java-Strings aufteilen, ohne leere Werte zu entfernen
Beim Versuch, einen Java-String mit der Methode „split(String regex)“ zu teilen, könnte man erwarten um leere Werte im resultierenden Array beizubehalten, insbesondere wenn sie irgendwo innerhalb der Zeichenfolge liegen. Standardmäßig entfernt die Split-Methode jedoch nachgestellte leere Werte aus dem Ausgabearray.
Betrachten Sie den folgenden Code:
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
In diesem Beispiel erwarten wir, dass wir bei der Aufteilung acht Werte erhalten Array, einschließlich leerer Zeichenfolgen: [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY]. Aufgrund der automatischen Entfernung abschließender leerer Zeichenfolgen erhalten wir jedoch unerwarteterweise nur sechs Werte.
Um dieses Problem zu beheben, können wir die überladene Methode „split(String regex, int limit)“ nutzen, bei der „limit“ festgelegt ist auf einen negativen Wert. Dadurch wird die Methode angewiesen, nachgestellte leere Zeichenfolgen nicht zu entfernen.
String[] split = data.split("\|", -1);
Durch Aufrufen der überladenen Version überschreiben wir das Standardverhalten und behalten alle leeren Werte im geteilten Array bei, unabhängig von ihrer Position.
Zusätzliche Erkenntnisse
Es ist wichtig zu beachten, dass das Standardverhalten das Entfernen abschließender leerer Zeichenfolgen ist Gilt nur, wenn diese leeren Zeichenfolgen als Ergebnis des Aufteilungsprozesses generiert werden. Das bedeutet, dass, wenn in der ursprünglichen Eingabezeichenfolge eine leere Zeichenfolge vorhanden ist (z. B. „.split(anything)), diese im resultierenden Array verbleibt, da sie nicht durch den Aufteilungsmechanismus eingeführt wurde.
Diese Granularität Das Verständnis des Verhaltens der Split-Methode stellt sicher, dass Entwickler eine bessere Kontrolle über den Inhalt ihrer Ausgabearrays haben, wenn sie mit potenziell leeren Werten arbeiten.
Das obige ist der detaillierte Inhalt vonWie kann ich einen Java-String aufteilen und alle leeren Werte behalten, einschließlich der nachfolgenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!