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算法)和正则表达式引擎。
另见
- Oracle官方教程关于正则表达式:https://docs.oracle.com/javase/tutorial/essential/regex/
- Apache Commons Lang:https://commons.apache.org/proper/commons-lang/
- Google Guava库:https://github.com/google/guava