在 Java 中,String 是不可变对象,所以“替换字符”本质上是生成一个新的字符串。常见做法有下面几种:
String.replace(最常用)String s = "hello world";
String result = s.replace('l', 'L');
System.out.println(result); // heLLo worLd
String s = "hello world";
String result = s.replace("world", "java");
System.out.println(result); // hello java
✅ 会替换所有匹配项
✅ 支持 char 和 CharSequence
String.replaceFirst(只替换第一个)String s = "hello world";
String result = s.replaceFirst("l", "L");
System.out.println(result); // heLlo world
✅ 支持正则表达式
String.replaceAll(正则替换)String s = "a1b2c3";
String result = s.replaceAll("\\d", "#");
System.out.println(result); // a#b#c#
⚠️ 参数是正则表达式
StringBuilder(频繁修改时推荐)String s = "hello";
StringBuilder sb = new StringBuilder(s);
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == 'l') {
sb.setCharAt(i, 'L');
}
}
String result = sb.toString();
✅ 性能好
✅ 适合循环、批量修改
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == 'l') {
chars[i] = 'L';
}
}
String result = new String(chars);
| 场景 | 推荐方式 |
|---|---|
| 简单替换 | replace |
| 正则替换 | replaceAll |
| 只替换第一个 | replaceFirst |
| 大量/循环修改 | StringBuilder |
如果你有具体示例(比如只替换某个位置的字符、忽略大小写等),我可以给你更精确的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。