Heim >Java >javaLernprogramm >Können Trennzeichen beim String-Splitting beibehalten werden?
Trennzeichen während der Zeichenfolgenaufteilung beibehalten
Wenn Sie mit einer mehrzeiligen Zeichenfolge arbeiten, die durch eine Reihe von Trennzeichen getrennt ist, besteht eine häufige Aufgabe darin, sie in mehrere Zeichenfolgen aufzuteilen Einzelteile. Typischerweise wird zu diesem Zweck die Methode String.split verwendet. Bei diesem Ansatz werden jedoch die Trennzeichen aus dem Ergebnis weggelassen.
Verwendung von Lookahead und Lookbehind
Um die Trennzeichen während der Aufteilung beizubehalten, kann das Konzept von Lookahead und Lookbehind in regulären Ausdrücken verwendet werden verwendet werden.
Bedenken Sie den folgenden Code:
<code class="java">System.out.println(Arrays.toString("a;b;c;d".split("(?<=;)"))); System.out.println(Arrays.toString("a;b;c;d".split("(?=;)"))); System.out.println(Arrays.toString("a;b;c;d".split("((?<=;)|(?=;))")));</code>
Dieser Code verwendet Lookahead und Lookbehind, um die Zeichenfolge zu untersuchen. Insbesondere entspricht (?<=;) einer leeren Zeichenfolge, die unmittelbar vor einem Semikolon (;) steht, und (?=;) entspricht einer leeren Zeichenfolge, die unmittelbar einem Semikolon folgt.
Die letzte Zeile, die geteilt wird on ((?<=;)|(?=;)), trennt die Zeichenfolge effizient in Text- und Trennzeichenkomponenten:
[a;, b;, c;, d] [a, ;b, ;c, ;d] [a, ;, b, ;, c, ;, d]
Im gewünschten Ergebnis erfasst die dritte Zeile die genaue Anforderung, Dabei folgt auf jedes Textsegment das entsprechende Trennzeichen.
Verbesserung der Lesbarkeit mit Variablen
Um die Lesbarkeit regulärer Ausdrücke zu verbessern, sollten Sie erwägen, eine Variable zu erstellen, die ihre Funktion darstellt. Der folgende Code verwendet beispielsweise die Variable WITH_DELIMITER, um das Trennzeichen anzugeben:
<code class="java">static public final String WITH_DELIMITER = "((?<=%1$s)|(?=%1$s))"; public void someMethod() { final String[] aEach = "a;b;c;d".split(String.format(WITH_DELIMITER, ";")); ... }</code>
Diese Technik hilft dabei, die Absicht des regulären Ausdrucks zu verdeutlichen.
Das obige ist der detaillierte Inhalt vonKönnen Trennzeichen beim String-Splitting beibehalten werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!