Heim > Java > javaLernprogramm > Wie kann ich mehrere Teilzeichenfolgen in einem Java-String effizient ersetzen?

Wie kann ich mehrere Teilzeichenfolgen in einem Java-String effizient ersetzen?

Linda Hamilton
Freigeben: 2024-11-05 06:42:02
Original
950 Leute haben es durchsucht

How Can I Efficiently Replace Multiple Substrings in a Java String?

Effizientes Ersetzen mehrerer Teilzeichenfolgen in einer Zeichenfolge in Java

Wenn Sie mit der Notwendigkeit konfrontiert werden, mehrere Teilzeichenfolgen innerhalb einer Zeichenfolge zu ersetzen, ist die Versuchung groß, dies zu tun greifen Sie auf den Brute-Force-Ansatz zurück, indem Sie die Methode string.replace() wiederholt anwenden. Dies kann jedoch bei großen Strings oder beim Arbeiten mit zahlreichen Strings ineffizient sein.

Reguläre Ausdrücke nutzen

Eine effizientere Lösung besteht darin, reguläre Ausdrücke zu nutzen. Mit regulären Ausdrücken können Sie komplexe Suchmuster definieren und Texttransformationen in einem einzigen Vorgang durchführen.

Beispielverwendung

Stellen Sie sich ein Szenario vor, in dem Sie Token wie „ „t%“ und „verage%“ mit in einer Karte gespeicherten Werten. Mit StringUtils von Apache Commons Lang können Sie ein Muster und einen Matcher wie folgt erstellen:

<code class="java">Map<String,String> tokens = new HashMap<>();
tokens.put("cat", "Garfield");
tokens.put("beverage", "coffee");

String template = "%cat% really needs some %beverage%.";

// Create pattern of the format "%(cat|beverage)%"
String patternString = "%(" + StringUtils.join(tokens.keySet(), "|") + ")%";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(template);</code>
Nach dem Login kopieren

Als nächstes können Sie den Matcher verwenden, um alle Vorkommen der Token zu finden und sie durch die entsprechenden Werte zu ersetzen:

<code class="java">StringBuffer sb = new StringBuffer();
while(matcher.find()) {
    matcher.appendReplacement(sb, tokens.get(matcher.group(1)));
}
matcher.appendTail(sb);

System.out.println(sb.toString());</code>
Nach dem Login kopieren

Vorteile regulärer Ausdrücke

Sobald der reguläre Ausdruck kompiliert ist, erfolgt die Suche in der Eingabezeichenfolge normalerweise sehr schnell. Darüber hinaus bieten reguläre Ausdrücke die Flexibilität, komplexe Suchmuster zu verarbeiten, beispielsweise solche mit Klammern und Quantoren.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Teilzeichenfolgen in einem Java-String effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage