搜索和替换文本

Java:
搜索和替换文本

怎么做:

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

public class SearchAndReplace {
    public static void main(String[] args) {
        String text = "Hello, World! Hello, Java World!";
        String searchFor = "World";
        String replaceWith = "Programmer";

        String replacedText = text.replace(searchFor, replaceWith);
        System.out.println(replacedText);  // Outputs: Hello, Programmer! Hello, Java Programmer!

        // 用正则表达式来搜索和替换
        String regexText = "Coding in 2023, Coding in Java!";
        Pattern pattern = Pattern.compile("\\d{4}");
        Matcher matcher = pattern.matcher(regexText);
        String updatedText = matcher.replaceAll("202X");
        System.out.println(updatedText);  // Outputs: Coding in 202X, Coding in Java!
    }
}

深入探究

文本搜索和替换最早出现在文本编辑器中,如vi和emacs,而现代编程语言则内置了这些功能。除了上面例子中用到的String.replace和正则表达式外,有些库提供了更强大的文本处理能力,例如Apache Commons Lang和Google Guava。实现细节方面,性能很大程度上取决于搜索算法(如KMP算法)和正则表达式引擎。

另见