Ich glaube, dass jeder oft die geteilte Stringmethode verwendet, aber Sie haben die folgenden Situationen begegnet:
Jeder denkt darüber nach, was das folgende Ergebnis der Codeausführung ist
Public static void main (String [] args) {// Todo Auto-Generatd-Methode String Str1 = "A, B, C, A"; , b, c ,,, ""; "" "", "); STR3 Länge: "+"+ S3.Length);}
Ausführungsergebnisse:
Warum erscheint dieses Ergebnis?
Lösung:
Durch das Betrachten der API haben wir festgestellt, dass unsere häufig verwendete Split -Methode standardmäßig durch 0 übertragen wird.
Public static void main (String [] args) {// Todo Auto-Generatd-Methode String Str1 = "A, B, C, A"; , b, c ,, ""; Split (",", -1); "Str3 Länge:"+S3.Length);}
Nachdem ich die API gefunden hatte, stellte ich fest, dass in der Streicherklasse zwei geteilte schwere Lastmethoden vorhanden sind
1. public String [] Split (String Regex)
Diese Saiten sind nach dem gegebenen regulären Ausdruck aufgeteilt.
Die Rolle dieser Methode ist wie die Verwendung eines bestimmten Ausdrucks und Grenzparameters 0, um die zwei -Parameter -Split -Methode aufzurufen. Daher enthält das Array nicht die End -Tiefe -String.
Beispielsweise kann die Zeichenfolge "Boo: und:: foo" die folgenden Ergebnisse generieren:
Regex -Ergebnisse
: {"Boo", "und", "Foo"} o {"B", "", ": und: f"}
Parameter:
Regex -fixiertes Gesetz regelmäßiger Ausdruck Returns:
Das String -Array, das gemäß der Übereinstimmung des regulären Ausdrucks ausgeworfen wird, um diese Zeichenfolge zu teilen:
Mustersynsyntaxexception -wenn die Grammatik im regulären Ausdruck ungültig ist
2. Public String [] Split (String Regex, int Limit)
Diese Saiten werden nach dem regulären Ausdruck aufgeteilt, der durch Matching gegeben wurde.
Das nach dieser Methode zurückgegebene Array enthält die Sub -String dieser Zeichenfolge. Der Sub -String im Array ist in der Reihenfolge angeordnet, die sie in dieser Zeichenfolge erscheinen. Wenn der Ausdruck keinen Teil des Inputs übereinstimmt, hat das Einkommensarray nur ein Element, dh diese Zeichenfolge.
Begrenzen Sie die Parameter -Steuermodus -Anwendungen und beeinflussen somit die Länge des Arrays. Wenn diese Grenze n größer als 0 ist, wird der Modus am meisten n -auf verwendet, und die Länge des Arrays ist nicht größer als N, und das letzte Element des Arrays enthält alle Eingänge über die endgültige Matching -Grenze hinaus. Wenn N nicht positiv ist, wird der Modus so weit wie möglich verwendet, und das Array kann eine beliebige Länge sein. Wenn n 0 ist, wird der Modus so weit wie möglich verwendet, das Array kann jede Länge sein und die endgültige Zeichenfolge wird verworfen.
Beispielsweise kann die Zeichenfolge "Boo: und:: foo" die folgenden Ergebnisse mit diesen Parametern generieren:
Regexlimit -Ergebnisse
: 2 {"boo", "und: foo"}: 5 {"boo", "und", "foo"}: -2 {"boo", ",", "foo"} o 5 {"B" "", ": und: f", "", "} o -2 {" B "," ",": und: f ",", "} o 0 {" B "," ": und::: F"}
Die Form von Str.Plit (Regex, n), die diese Methode aufruft, entspricht genau den Ergebnissen, die aus den folgenden Ausdrücken erzeugt werden:
Muster.comPile (regex) .Split (str, n)
Parameter:
Regex -Definition regulärer Ausdruck
Limit -Result -Schwelle, wie oben beschrieben
zurückkehren:
Das String -Array wird gemäß der Übereinstimmung des regulären Ausdrucksausdrucks bestimmt.
Auswerfen:
Mustersynsyntaxexception -wenn die Grammatik im regulären Ausdruck ungültig ist