Java 字符串替换大全:replace()、replaceAll() 与 replaceFirst() 详解
Java String 类提供三种强大替换方法:replace()、replaceAll()、replaceFirst()。各有专用场景与优化策略。
Java String replace()
replace() 执行直接字符或字符串替换。扫描整个字符串,将目标所有出现替换为替换值,返回新 String 实例。适合非正则的直接替换。
语法
public String replace(CharSequence target, CharSequence replacement)
参数
target—— 要替换的字符序列。replacement—— 替换target的序列。
示例
public class ReplaceExample { public static void main(String[] args) { String original = "the quick fox jumped"; System.out.println("Original: " + original); System.out.println("After replace(\"fox\", \"dog\"): " + original.replace("fox", "dog")); System.out.println("After replace('t', 'a'): " + original.replace('t', 'a')); } }
输出
Original: the quick fox jumped After replace("fox", "dog"): the quick dog jumped After replace('t', 'a'): ahe quick fox jumped
Java String replaceAll()
replaceAll() 使用正则表达式(regex)在全字符串匹配,将每处匹配替换为指定替换值,返回新字符串。适合基于模式的批量替换。
签名
public String replaceAll(String regex, String replacement)
参数
regex—— 定位子串的正则模式。replacement—— 替换每处匹配的字符串。
示例
public class ReplaceAllExample { public static void main(String[] args) { String text = "Guru99 is a site providing free tutorials"; String withoutSpaces = text.replaceAll("\\s", ""); System.out.println(withoutSpaces); } }
输出
Guru99isasiteprovidingfreetutorials
Java String replaceFirst()
replaceFirst() 类似 replaceAll() 但仅影响首个匹配。从字符串开头扫描,首次替换后停止,适合仅修改首次出现的场景。
签名
public String replaceFirst(String regex, String replacement)
参数
regex—— 识别目标子串的正则模式。replacement—— 替换首个匹配的字符串。
示例
public class ReplaceFirstExample { public static void main(String[] args) { String sentence = "This website providing free tutorials"; String updated = sentence.replaceFirst("s", "9"); System.out.println(updated); } }
输出
Thi9 website providing free tutorials
如何选择合适方法
- 简单非正则替换用
replace()。 - 需替换正则模式所有匹配用
replaceAll()。 - 仅修改首次出现用
replaceFirst()。
这些方法均为不可变操作;从不修改原字符串,返回新实例,保证线程安全与并发环境下的可预测行为。
java
- Java 变量与字面量:全面指南
- 精通 Java 字符串:创建、方法与最佳实践
- 精通 Java 枚举字符串表示:默认行为、toString 重写与进阶模式
- Java 注解类型完全指南:预定义、自定义与元注解
- Java String length() 方法:获取字符串长度(示例)
- 精通 Java String.indexOf():定位子字符串与实战示例
- Java String.charAt() 详解:语法、返回类型、异常与实战示例
- 精通 Java String compareTo():语法、用例与实战示例
- Java String.contains() 方法:检查子字符串是否存在(实战示例)
- 精通 Java String.endsWith():检查字符串后缀(示例)
- Java String toLowerCase() 与 toUpperCase():区域感知的大小写转换
- Java Strings 类:掌握字符串创建与操作