Heim  >  Artikel  >  Java  >  Wie teile ich eine Zeichenfolge mit Buchstaben und Zahlen in alternierende Segmente in Java auf?

Wie teile ich eine Zeichenfolge mit Buchstaben und Zahlen in alternierende Segmente in Java auf?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 11:03:49726Durchsuche

How to Split a String with Letters and Numbers into Alternating Segments in Java?

Buchstaben und Zahlen in einer Zeichenfolge trennen

In Java kann es vorkommen, dass Sie eine Zeichenfolge, die sowohl Buchstaben als auch Ziffern enthält, aufteilen müssen abwechselnde Segmente. Wenn Sie beispielsweise die Zeichenfolge „123abc345def“ angeben, könnten Sie das folgende Ergebnis anstreben:

x[0] = "123"
x[1] = "abc"
x[2] = "345"
x[3] = "def"

Um diese präzise Trennung zu erreichen, können Sie den folgenden regulären Ausdruck verwenden:

str.split("(?<=\D)(?=\d)|(?<=\d)(?=\D)");

Dieses Muster teilt die Zeichenfolge an bestimmten Stellen basierend auf zwei Bedingungen:

  • (?<=D)(?=\d): Entspricht Positionen unmittelbar nach einem nichtstelligen Zeichen (D) und sofort vor einer Ziffer (d). Diese Bedingung identifiziert den Anfang eines numerischen Segments.
  • (?<=d)(?=\D): Entspricht Positionen unmittelbar nach einer Ziffer und unmittelbar vor einem nichtstelligen Zeichen. Diese Bedingung identifiziert den Anfang eines Buchstabensegments.

Durch Aufteilen der Zeichenfolge an diesen Positionen können Sie die abwechselnden Segmente aus Buchstaben und Zahlen isolieren.

Erklärung des Regexp:

  • \D: Entspricht jedem Nicht-Zifferzeichen.
  • \d: Entspricht jedem Ziffernzeichen.
  • (?<=) : Positiver Lookbehind, Übereinstimmung mit einem Muster unmittelbar vor der aktuellen Position.
  • (?=): Positiver Lookahead, Übereinstimmung mit einem Muster unmittelbar nach der aktuellen Position.

Beispielverwendung :

String str = "123abc345def";
String[] x = str.split(&quot;(?&lt;=\D)(?=\d)|(?&lt;=\d)(?=\D)&quot;);

Nach der Ausführung des obigen Codes enthält das x-Array die abwechselnden Segmente wie gewünscht:

x[0] = "123"
x[1] = "abc"
x[2] = "345"
x[3] = "def"

Mit dieser Technik können Sie Buchstaben und Ziffern effizient trennen eine Zeichenfolge, die es Ihnen ermöglicht, sie entsprechend ihrem Typ zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie teile ich eine Zeichenfolge mit Buchstaben und Zahlen in alternierende Segmente in Java auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn