Sökning och ersättning av text

Java:
Sökning och ersättning av text

How to:

Java erbjuder String metoder för att enkelt hantera sökning och ersättning, samt Pattern och Matcher klasser för avancerade behov. Här är några exempel:

// Enkel sökning och ersättning med String
String originalText = "Hej världen! Jag heter Java.";
String replacedText = originalText.replace("Java", "C++");
System.out.println(replacedText); // Output: Hej världen! Jag heter C++.

// Använda regex (regular expressions) för mer kontroll
String regexText = "Java 101, Java 202, Kotlin 303";
String regexReplacedText = regexText.replaceAll("Java \\d{3}", "Swift");
System.out.println(regexReplacedText); // Output: Swift, Swift, Kotlin 303

För ännu mer kontroll kan vi använda Pattern och Matcher:

import java.util.regex.*;

String complexText = "Java 1.8, Java 10, Java 11";
Pattern pattern = Pattern.compile("Java (\\d{1,2})");
Matcher matcher = pattern.matcher(complexText);

StringBuffer result = new StringBuffer();
while(matcher.find()) {
    matcher.appendReplacement(result, "Java SE " + matcher.group(1));
}
matcher.appendTail(result);

System.out.println(result.toString()); // Output: Java SE 1.8, Java SE 10, Java SE 11

Deep Dive

Att söka och ersätta text har länge varit en vital del av programmering. Från tidiga kommandoradsverktyg som sed i Unix till moderna IDE-funktioner. Java’s String klass erbjuder enkelhet medan Pattern och Matcher ger kraft för regex.

Alternativ inkluderar tredjepartsbibliotek som Apache Commons Lang StringUtils för ännu större funktionalitet.

När man implementerar sökning och ersättning är det viktigt att vara uppmärksam på prestanda vid hantering av stora textmängder och att regex kan vara kostsamt vad gäller processorkraft.

See Also