Wyszukiwanie i zamiana tekstu

Java:
Wyszukiwanie i zamiana tekstu

How to: (“Jak to zrobić:”)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TextReplaceExample {
    public static void main(String[] args) {
        String originalText = "Jabłka są zielone i jabłka są czerwone.";
        String searchText = "jabłka";
        String replaceWith = "banany";

        // Proste zastąpienie
        String replacedText = originalText.replaceAll(searchText, replaceWith);
        System.out.println(replacedText);
        // Output: Banany są zielone i banany są czerwone.

        // Za pomocą wyrażeń regularnych
        Pattern pattern = Pattern.compile(searchText, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(originalText);
        String regexReplacedText = matcher.replaceAll(replaceWith);
        System.out.println(regexReplacedText);
        // Output: Banany są zielone i banany są czerwone.
    }
}

Deep Dive (“Dogłębna analiza”):

Zanim pojawiły się wygodne biblioteki i funkcje, taki jak replaceAll w Javie, wyszukiwanie i zamiana tekstu wymagały manualnej iteracji po znakach i porównywania znalezionych ciągów. Harsh reality. Teraz to wyjątkowo proste.

Alternatywy? Sprawdź replace zamiast replaceAll dla prostych, dosłownych zastąpień czy replaceFirst żeby zmienić tylko pierwsze wystąpienie. Masz też biblioteki zewnętrzne jak Apache Commons Lang StringUtils, jeśli potrzebujesz czegoś bardziej wyspecjalizowanego.

Szczegóły implementacji? replaceAll wykorzystuje wyrażenia regularne pod maską, więc jest potężne, ale może być wolniejsze z powodu overheadu kompilacji wyrażeń. Pamiętaj, by używać Pattern.CASE_INSENSITIVE, jeśli wielkość liter nie jest istotna.

See Also (“Zobacz również”):