java字符如何替换
Java 字符替换方法
在 Java 中,字符替换可以通过多种方式实现,具体取决于需求和场景。以下是几种常见的方法:
使用 String.replace() 方法
String.replace() 方法可以替换字符串中的所有匹配字符或子字符串。它有两个重载版本:
replace(char oldChar, char newChar)replace(CharSequence target, CharSequence replacement)
示例代码:
String str = "Hello World";
String replacedStr = str.replace('l', 'L');
System.out.println(replacedStr); // 输出 "HeLLo WorLd"
使用 String.replaceAll() 方法
String.replaceAll() 方法使用正则表达式匹配并替换字符串中的所有匹配项。
示例代码:
String str = "Hello 123 World 456";
String replacedStr = str.replaceAll("\\d", "#");
System.out.println(replacedStr); // 输出 "Hello ### World ###"
使用 String.replaceFirst() 方法
String.replaceFirst() 方法仅替换第一个匹配的字符或子字符串。
示例代码:
String str = "Hello World";
String replacedStr = str.replaceFirst("l", "L");
System.out.println(replacedStr); // 输出 "HeLlo World"
使用 StringBuilder 或 StringBuffer
如果需要高效地逐个字符替换,可以使用 StringBuilder 或 StringBuffer 的 setCharAt() 方法。
示例代码:
StringBuilder sb = new StringBuilder("Hello World");
sb.setCharAt(4, 'X');
System.out.println(sb.toString()); // 输出 "HellX World"
使用正则表达式和 Pattern/Matcher
对于复杂的替换逻辑,可以使用 Pattern 和 Matcher 类。
示例代码:
import java.util.regex.*;
String str = "Hello 123 World 456";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(str);
String replacedStr = matcher.replaceAll("#");
System.out.println(replacedStr); // 输出 "Hello # World #"
使用字符数组
通过将字符串转换为字符数组,可以逐个字符检查和替换。
示例代码:

String str = "Hello World";
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == 'l') {
chars[i] = 'L';
}
}
String replacedStr = new String(chars);
System.out.println(replacedStr); // 输出 "HeLLo WorLd"
注意事项
String.replace()和String.replaceAll()的区别在于后者支持正则表达式。- 字符串是不可变的,所有替换操作都会生成新的字符串对象。
- 对于大量替换操作,
StringBuilder或StringBuffer性能更优。






