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
Libérer: 2024-11-18 08:22:02
original
386 Les gens l'ont consulté

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
}
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal