„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie teilt man Zeichenfolgen unter Beibehaltung der Trennzeichen mithilfe von Java Lookahead und Lookbehind auf?

Wie teilt man Zeichenfolgen unter Beibehaltung der Trennzeichen mithilfe von Java Lookahead und Lookbehind auf?

Veröffentlicht am 08.11.2024
Durchsuche:697

How to Split Strings with Delimiters Preserved Using Java Lookahead and Lookbehind?

Aufteilen von Zeichenfolgen mit beibehaltenen Trennzeichen

Bei der Arbeit mit mehrzeiligen Zeichenfolgen, die durch eine Reihe eindeutiger Trennzeichen getrennt sind, kann es schwierig sein, die Zeichenfolge zu teilen Dabei bleiben auch die Trennzeichen selbst erhalten. Die Standardmethode String.split trennt die Zeichenfolge nur basierend auf dem angegebenen Trennzeichen und verwirft die Trennzeichen.

Verwenden von Lookahead und Lookbehind

Das Java Development Kit (JDK) bietet eine Lösung mit Lookahead und Lookbehind. Dabei handelt es sich um Funktionen regulärer Ausdrücke, mit denen Sie Zeichen abgleichen und erfassen können, ohne sie in das Endergebnis einzubeziehen.

Hier ist ein Beispiel für die Verwendung von Lookahead und Lookbehind:

String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";

String[] splitWithDelimiter = input.split("((?

Das Muster:

  • (?
  • (?=;) entspricht einem Leerzeichen direkt vor einem Semikolon (lookahead).
  • ((?

Ausgabe:

[Text1, ;, DelimiterA, ;, Text2, ;, DelimiterC, ;, Text3, ;, DelimiterB, ;, Text4]

Dieses Ergebnis behält die Trennzeichen zusammen mit dem Text bei und erfüllt die Anforderung, die Trennzeichen beim Teilen der Zeichenfolge intakt zu halten.

Verbesserung Lesbarkeit

Reguläre Ausdrücke können manchmal schwer zu lesen und zu verstehen sein. Um die Lesbarkeit zu verbessern, können Sie eine Variable mit einem beschreibenden Namen erstellen, der das reguläre Ausdrucksmuster darstellt. Zum Beispiel:

static final String WITH_DELIMITER = "((?

Durch die Verwendung von Platzhaltern und dem String.format von Java können Sie den regulären Ausdruck intuitiver und einfacher zu interpretieren machen.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729746892 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3