Maison > Java > javaDidacticiel > Comment remplacer efficacement plusieurs sous-chaînes dans une chaîne Java ?

Comment remplacer efficacement plusieurs sous-chaînes dans une chaîne Java ?

Barbara Streisand
Libérer: 2024-11-03 23:21:30
original
308 Les gens l'ont consulté

How to Efficiently Replace Multiple Substrings in a Java String?

Substitution efficace de chaînes en Java

Remplacer efficacement plusieurs sous-chaînes dans une chaîne est une tâche courante en programmation. Bien que l'approche par force brute consistant à utiliser String.replace() pour chaque substitution soit simple, elle peut s'avérer inefficace, en particulier pour les grandes chaînes ou lorsqu'il s'agit de nombreux remplacements.

Remplacement de sous-chaînes à l'aide d'expressions régulières

Une solution plus efficace consiste à utiliser des expressions régulières. En compilant un modèle qui correspond à tous les remplacements de sous-chaînes souhaités, vous pouvez remplacer plusieurs sous-chaînes à la fois.

Considérez l'exemple de code suivant, qui remplace les jetons d'une carte dans une chaîne de modèle à l'aide d'expressions régulières :

<code class="java">import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

...

// Tokens to replace
Map<String, String> tokens = new HashMap<>();
tokens.put("cat", "Garfield");
tokens.put("beverage", "coffee");

// Template string with tokens
String template = "%cat% really needs some %beverage%.";

// Create pattern to match tokens
String patternString = "%(" + StringUtils.join(tokens.keySet(), "|") + ")%";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(template);

// Replace tokens using Matcher
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
    matcher.appendReplacement(sb, tokens.get(matcher.group(1)));
}
matcher.appendTail(sb);

System.out.println(sb.toString()); // Prints the replaced string</code>
Copier après la connexion

En utilisant des expressions régulières, vous pouvez améliorer considérablement l'efficacité des remplacements de plusieurs sous-chaînes, en particulier pour les chaînes d'entrée volumineuses ou complexes.

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