Wie teilt man den string mit der leere Zeichenfolgen in Folge?
Ich bin ein bisschen verwirrt darüber, Scala string split Verhalten, wie es nicht funktioniert, konsequent und Liste einige Elemente fehlen. Zum Beispiel, wenn ich eine CSV-Zeichenfolge mit 4 Spalten und 1 element fehlt.
"elem1, elem2,,elem 4".split(",") = List("elem1", "elem2", "", "elem4")
Toll! Das ist, was ich erwarten würde.
Auf der anderen Seite, wenn beide element 3 und 4 sind dann fehlt:
"elem1, elem2,,".split(",") = List("elem1", "elem2")
In der Erwägung, dass würde ich erwarten, dass es zurück
"elem1, elem2,,".split(",") = List("elem1", "elem2", "", "")
Bin ich etwas fehlt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Peter erwähnt in seiner Antwort
"string".split()
in Java und Scala, nicht wieder leere strings standardmäßig.Können Sie jedoch angeben, für Sie, um zurückzukehren, leere Saiten, durch die übergabe eines zweiten Parameters, wie diese:
Und erhalten Sie das erwartete Ergebnis.
Finden Sie den zugehörigen Java-doc hier.
Ich glaube, dass nachgestellte Leerzeichen sind nicht im Lieferumfang enthalten in einen Wert zurück.
JavaDoc für
split(String regex)
sagt: "Diese Methode funktioniert, als ob durch das aufrufen der zwei-argumentsplit
Methode mit dem angegebenen Ausdruck und eine limit-argument null ist. Leere strings sind daher nicht enthalten in dem resultierenden array."Also in deinem Fall
split(String regex, int limit)
sollte verwendet werden, um leere Zeichenfolge in einen Wert zurück.