Detaillierte Erläuterung der Verwendung der Split-Methode von Java
Ich glaube, jeder verwendet oft die Split-Methode von String, aber sind Sie jemals auf die folgende Situation gestoßen:
Denken Sie an das Ausführungsergebnis des folgenden Codes
public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "a,b,c,,,a"; String str2 = "a,b,c,,,"; String str3 = "a,b,c, , ,"; String[] s1 = str1.split(","); String[] s2 = str2.split(","); String[] s3 = str3.split(","); System.out.println("str1长度:"+s1.length); System.out.println("str2长度:"+s2.length); System.out.println("str3长度:"+s3.length); }
Ausführungsergebnis:
Warum tritt ein solches Ergebnis auf? Beim Durchsuchen der API wurde eine Lösung gefunden.
Lösung:
Durch Überprüfung In der API haben wir festgestellt, dass unsere häufig verwendete Split-Methode standardmäßig 0 übergibt. Die Lösung zur Lösung des Problems der leeren str2-Ausgabe besteht darin, den zweiten Parameter als negative Zahl zu übergeben, d. h.
public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "a,b,c,,,a"; String str2 = "a,b,c,,,"; String str3 = "a,b,c, , ,"; String[] s1 = str1.split(","); String[] s2 = str2.split(",",-1); String[] s3 = str3.split(",",-1); System.out.println("str1长度:"+s1.length); System.out.println("str2长度:"+s2.length); System.out.println("str3长度:"+s3.length); }
Nachdem Durchsuchen der API wurde festgestellt, dass es in der String-Klasse zwei geteilte überladene Methoden gibt
1.public String[] split(String regex)
Gemäß der gegebener regulärer Ausdruck Match teilt diese Zeichenfolge.
Diese Methode verhält sich wie der Aufruf der Split-Methode mit zwei Argumenten mit dem angegebenen Ausdruck und dem Einschränkungsargument 0. Daher ist die abschließende leere Zeichenfolge nicht im resultierenden Array enthalten.
Zum Beispiel verwendet die Zeichenfolge „boo:and:foo“ diese Ausdrücke, um die folgenden Ergebnisse zu erzeugen:
Regex-Ergebnisse
: { "boo", "and", "foo" } o { "b", "", ":and:f" }
Parameter:
Regex – durch Trennzeichen getrennter regulärer Ausdruck
gibt zurück:
ein Array von Zeichenfolgen, das durch Aufteilen dieser Zeichenfolge basierend auf Übereinstimmungen mit dem angegebenen regulären Ausdruck bestimmt wird.
löst Folgendes aus:
PatternSyntaxException – Wenn die Syntax der regulärer Ausdruck ist ungültig
2.public String[] split(String regex,int limit)
Teilen Sie dieses Zeichen basierend auf der Übereinstimmung mit der angegebenen Zeichenfolge des regulären Ausdrucks auf.
Das von dieser Methode zurückgegebene Array enthält Teilzeichenfolgen dieser Zeichenfolge, von denen jede durch eine andere Teilzeichenfolge, die dem angegebenen Ausdruck entspricht, oder durch das Ende dieser Zeichenfolge abgeschlossen wird. Die Teilzeichenfolgen im Array werden in der Reihenfolge angeordnet, in der sie in dieser Zeichenfolge erscheinen. Wenn der Ausdruck mit keinem Teil der Eingabe übereinstimmt, enthält das resultierende Array nur ein Element, den String. Der Parameter
limit steuert die Häufigkeit, mit der das Muster angewendet wird, und wirkt sich somit auf die Länge des resultierenden Arrays aus. Wenn der Grenzwert n größer als 0 ist, wird das Muster höchstens n-1 Mal angewendet, die Länge des Arrays wird nicht größer als n sein und das letzte Element des Arrays enthält alle Eingaben über das letzte übereinstimmende Trennzeichen hinaus . Wenn n nicht positiv ist, wird das Muster so oft wie möglich angewendet und das Array kann eine beliebige Länge haben. Wenn n 0 ist, wird das Muster so oft wie möglich angewendet, das Array kann eine beliebige Länge haben und die abschließende leere Zeichenfolge wird verworfen.
Zum Beispiel erzeugt die Zeichenfolge „boo:and:foo“ unter Verwendung dieser Parameter das folgende Ergebnis:
Regex Limit result
: 2 { "boo", "and:foo" } : 5 { "boo", "and", "foo" } : -2 { "boo", "and", "foo" } o 5 { "b", "", ":and:f", "", "" } o -2 { "b", "", ":and:f", "", "" } o 0 { "b", "", ":and:f" }
Str.split ruft diese Methode auf Die Form (regex, n) erzeugt genau das gleiche Ergebnis wie der folgende Ausdruck:
Pattern.compile(regex).split(str, n)
Parameter:
regex – durch Trennzeichen getrennter regulärer Ausdruck
Limit – Ergebnisschwellenwert, wie oben
Rückgabe:
Array von Zeichenfolgen, aufgeteilt basierend auf Übereinstimmungen mit dem angegebenen regulären Ausdruck. Diese Zeichenfolge bestimmt
löst aus:
PatternSyntaxException – wenn die Syntax des regulären Ausdrucks ungültig ist
Ausführlichere Erklärungen zur Split-Methode von Java und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.
