Heim  >  Artikel  >  Java  >  Wie teile ich Zeichenfolgen durch Leerzeichen auf und behalte dabei Teilzeichenfolgen in Anführungszeichen in Java bei?

Wie teile ich Zeichenfolgen durch Leerzeichen auf und behalte dabei Teilzeichenfolgen in Anführungszeichen in Java bei?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-18 08:22:02327Durchsuche

How to Split Strings on Spaces While Preserving Quoted Substrings in Java?

Strings in Leerzeichen aufteilen, Teilstrings in Anführungszeichen in Java beibehalten

Java's String-Splitting ist ein vielseitiges Werkzeug, aber es kann bei der Begegnung auf Herausforderungen stoßen Teilzeichenfolgen in Anführungszeichen. Um eine Zeichenfolge basierend auf Leerzeichen effizient aufzuteilen und gleichzeitig in Anführungszeichen gesetzte Teilzeichenfolgen wie ein einzelnes Wort zu behandeln, sollten Sie die folgende Methode in Betracht ziehen:

Unter Verwendung regulärer Ausdrücke nutzt die Lösung ein bestimmtes Muster, das Token entweder als nicht in Anführungszeichen gesetzte Sequenzen von Nicht-Zeichenfolgen identifiziert. Leerzeichen oder Sequenzen in Anführungszeichen, die eine beliebige Anzahl von Zeichen enthalten. Das Ergebnis ist eine Liste tokenisierter Elemente, die die zitierten Teilzeichenfolgen genau beibehalten.

Pattern pattern = Pattern.compile("([^\"]\S*|\".+?\")\s*");
Matcher matcher = pattern.matcher(str);
List<String> tokens = new ArrayList<>();

while (matcher.find()) {
    String token = matcher.group(1);
    tokens.add(token.replace("\"", "")); // Remove surrounding quotes if needed
}

In diesem Beispiel wird die Zeichenfolge „Standort „Willkommen in Indien“ Bangalore Channai „IT-Stadt“ Mysore“ wie folgt tokenisiert:

Location
Welcome to india
Bangalore
Channai
IT city
Mysore

Diese Methode handhabt die Beibehaltung von Teilzeichenfolgen in Anführungszeichen auf elegante Weise und stellt sicher, dass bedeutungsvolle Phrasen wie „Willkommen“ erhalten bleiben to india“ oder „IT city“ werden als einzelne Token gepflegt.

Das obige ist der detaillierte Inhalt vonWie teile ich Zeichenfolgen durch Leerzeichen auf und behalte dabei Teilzeichenfolgen in Anführungszeichen in Java bei?. 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