Java-String-Aufteilung ohne leere Werte
Beim Aufteilen einer Zeichenfolge mit der Methode split() werden leere Werte, die aus der Aufteilungsoperation resultieren, gelöscht wird normalerweise aus dem resultierenden Array entfernt. Dies kann zu unerwarteten Ergebnissen führen, insbesondere wenn mit Zeichenfolgen gearbeitet wird, die möglicherweise leere Werte enthalten.
Bedenken Sie den folgenden Codeausschnitt:
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
Im obigen Beispiel ist die erwartete Ausgabe ein Array mit 8 Elementen: [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY]. Die tatsächliche Ausgabe besteht jedoch nur aus 6 Werten, mit Ausnahme der leeren Werte.
Um dieses Problem zu beheben und sicherzustellen, dass leere Werte im resultierenden Array enthalten sind, können wir die überladene Version der Methode split() verwenden Nimmt einen zusätzlichen Grenzwertparameter an, der auf einen negativen Wert eingestellt ist.
String[] split = data.split("\|", -1);
Durch das Setzen des Grenzwertparameters auf -1 geben wir an, dass es keine Begrenzung für die Häufigkeit der Anwendung des Teilungsmusters gibt. Dies verhindert das Standardverhalten, abschließende leere Zeichenfolgen aus dem Ergebnisarray auszuschließen.
In der Dokumentation der Methode split() heißt es, dass das Muster bis zu diesem Grenzwert und dem resultierenden Array angewendet wird, wenn der Grenzwert größer als Null ist wird eine Länge haben, die den Grenzwert nicht überschreitet. Wenn die Grenze nicht positiv ist, wird das Muster so oft wie möglich angewendet und das resultierende Array kann eine beliebige Länge haben.
Es ist wichtig zu beachten, dass das Standardverhalten des Ausschließens abschließender leerer Zeichenfolgen nur für leere gilt Zeichenfolgen, die als Ergebnis der Teilungsoperation erstellt werden. Wenn in der Originalzeichenfolge bereits eine leere Zeichenfolge vorhanden ist, wird sie dennoch in das resultierende Array eingefügt.
Indem wir das Verhalten der Methode split() verstehen und den Parameter limit effektiv nutzen, können wir die Einbeziehung steuern oder Ausschluss leerer Werte im resultierenden Array, um sicherzustellen, dass unsere Aufteilungsvorgänge die gewünschten Ergebnisse liefern.
Das obige ist der detaillierte Inhalt vonWie bleiben leere Strings beim Teilen eines Java-Strings erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!