Maison >Java >javaDidacticiel >Comment diviser des chaînes sur des espaces tout en préservant les sous-chaînes citées en Java ?

Comment diviser des chaînes sur des espaces tout en préservant les sous-chaînes citées en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-18 08:22:02389parcourir

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

Diviser les chaînes sur les espaces, préserver les sous-chaînes citées en Java

Le fractionnement des chaînes de Java est un outil polyvalent, mais il peut se heurter à des défis lorsqu'il rencontre sous-chaînes entre guillemets. Pour diviser efficacement une chaîne en fonction des espaces tout en traitant les sous-chaînes entre guillemets comme un seul mot, envisagez la méthode suivante :

À l'aide d'expressions régulières, la solution exploite un modèle spécifique qui identifie les jetons comme des séquences non citées de non- caractères d'espacement ou séquences entre guillemets contenant un nombre quelconque de caractères. Le résultat est une liste d'éléments tokenisés qui préservent avec précision les sous-chaînes citées.

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
}

Dans cet exemple, la chaîne "Location "Bienvenue en Inde" Bangalore Channai "IT city" Mysore" sera tokenisée comme :

Location
Welcome to india
Bangalore
Channai
IT city
Mysore

Cette méthode gère avec élégance la préservation des sous-chaînes citées, garantissant que les expressions significatives telles que « Bienvenue en Inde » ou « Ville informatique » sont conservées sous forme de jetons uniques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn